在使用FileHelpers编写CSV文件时,如何控制日期的输出格式?

时间:2010-08-23 01:08:42

标签: .net csv filehelpers

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

我的数据包含日期,因此我创建了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();
    }

1 个答案:

答案 0 :(得分:1)

事实证明您需要使用Converter类的FieldBuilder属性。

将以下代码块添加到我的方法允许我在生成的CSV文件中自定义日期格式。

if (property.Type == typeof(DateTime))
{
   fieldBuilder.Converter.Kind = ConverterKind.Date;
   fieldBuilder.Converter.Arg1 = "dd/MM/yyyy";
}