【问题标题】:How do you control the output format of a date when writing a CSV file with FileHelpers?使用 FileHelpers 编写 CSV 文件时如何控制日期的输出格式?
【发布时间】:2010-08-23 01:08:41
【问题描述】:

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

我的数据包含日期,因此我创建了一个 DateTime 类型的字段,但是当文件生成时,日期值以 ddmmyyyy 的格式出现,而不是 dd/mm/yyyy,例如28042000 而不是 28/04/2000。

我已将CsvOptions 类的DateFormat 属性设置为"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();
    }

【问题讨论】:

    标签: .net csv filehelpers


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多