超小ネタです。
CSVHelper でファイルの書き出しをする際、DateTime の項目を指定のフォーマットで出力したい時があります。
何もしなければ、
デフォルトの DateTime の項目
徳川 家康,男,01/31/1543 00:00:00
というふうに、アメリカンな感じになってしまいます。
そんな時は、TypeConverterOptionsCache を使うと便利です。
サンプル
private void ExportCSV(string filename, List<data> SendDataList)
{
try
{
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
HasHeaderRecord = true,
ShouldQuote = (context) => false,
};
using (var writer = new StreamWriter(FileName, false, Encoding.UTF8))
{
using (var csv = new CsvWriter(writer, config))
{
// コンバータを定義します
var options = new TypeConverterOptions { Formats = new[] { "yyyy年MM月dd日" } };
// DateTime 項目だった場合にコンバータを使うように登録します
csv.Context.TypeConverterOptionsCache.AddOptions<DateTime>(options);
//出力します
csv.WriteRecords(SendDataList);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
}
コンバータを有効に!
徳川 家康,男,1543年1月31日
日本でおなじみのフォーマットになりました。
いい感じです。