2

FileHelpers 2.0ライブラリを使用して、ClassBuilderクラスを使用してレコードタイプを生成するCSVファイルを作成しています。

私のデータには日付が含まれているので、タイプのフィールドを作成しDateTimeますが、ファイルが生成されると、日付値は、たとえばでddmmyyyyはなく、形式で出力されます。dd/mm/yyyy2804200028/04/2000

クラスのDateFormatプロパティをに設定しましたが、役に立ちません。CsvOptions"dd/MM/yyyy"

レコードタイプを生成するコードは次のとおりです。

    private Type CreateRecordType()
    {
        int propertyIndex = 0;
        var csvOptions = new CsvOptions("Flat" + _report.RootType.Name, ',', Properties.Count)
                             {
                                 DateFormat = "dd/MM/yyyy"
                             };
        var classBuilder = new CsvClassBuilder(csvOptions);

        foreach(var property in Properties)
        {
            var fieldBuilder = classBuilder.FieldByIndex(propertyIndex++);
            fieldBuilder.FieldName = property.Name;
            fieldBuilder.FieldType = property.Type.Name;
        }

        return classBuilder.CreateRecordClass();
    }
4

1 に答える 1

1

クラスのConverterプロパティを使用する必要があることがわかりました。FieldBuilder

次のコードブロックをメソッドに追加すると、結果のCSVファイルの日付形式をカスタマイズできます。

if (property.Type == typeof(DateTime))
{
   fieldBuilder.Converter.Kind = ConverterKind.Date;
   fieldBuilder.Converter.Arg1 = "dd/MM/yyyy";
}
于 2010-08-23T01:33:48.407 に答える