代码之家  ›  专栏  ›  技术社区  ›  John Mills

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

  •  2
  • John Mills  · 技术社区  · 14 年前

    我用的是 库使用 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();
        }
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   John Mills    14 年前

    原来你需要用 Converter FieldBuilder

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

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