2

我正在使用FileHelpers 2.0库编写 CSV 文件,使用ClassBuilder该类生成记录类型。

我的数据包含日期,因此我创建了一个类型的字段DateTime,但是在生成文件时,日期值以格式ddmmyyyy而不是dd/mm/yyyy例如28042000而不是28/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 回答