LoginSignup
0
1

More than 1 year has passed since last update.

CSVHelper の小ネタ 出力時に日付を指定のフォーマットで出力する

Last updated at Posted at 2023-02-08

超小ネタです。

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日

日本でおなじみのフォーマットになりました。
いい感じです。

関連記事

CSVファイルを扱うのに便利な CSVHelper ver 25.0 の Getting Started

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1