2016-09-19 1 views
-1

私はCsvHelperを使っていくつかのCSVファイルを書き、自分の日時の形式を何かに変更したいと思います。 https://stackoverflow.com/a/31817621/223742からアドバイスを受けて、各クラスのマップを正常に作成できます。CsvHelperは日付と時刻の出力方法を変更します

ただし、エクスポートするすべてのクラスのカスタムマップを作成する必要があるという明白な欠点があります。毎回地図を修正しなくてはならないので、いつもすべてのフィールドをエクスポートすることがメンテナンスの悪夢になります。

CsvHelperに特定の形式を使用してのすべての日付と時刻をで書き込むように指示する簡単な方法はありますか?

答えて

1

TypeConverterOptionsFactoryを使用してタイプごとにグローバルに設定できます。

void Main() 
{ 
    using (var stream = new MemoryStream()) 
    using (var reader = new StreamReader(stream)) 
    using (var writer = new StreamWriter(stream)) 
    using (var csv = new CsvWriter(writer)) 
    { 
     var options = new TypeConverterOptions 
     { 
      Format = "o" 
     }; 
     TypeConverterOptionsFactory.AddOptions<DateTime>(options); 

     csv.WriteField(DateTime.Now); 
     csv.NextRecord(); 
     writer.Flush(); 
     stream.Position = 0; 

     reader.ReadToEnd().Dump(); 
    } 
} 

出力:

2016-09-19T11:01:41.5507054-05:00 
関連する問題