我正在使用 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();
}
答案 0 :(得分:1)
事实证明您需要使用Converter
类的FieldBuilder
属性。
将以下代码块添加到我的方法允许我在生成的CSV文件中自定义日期格式。
if (property.Type == typeof(DateTime))
{
fieldBuilder.Converter.Kind = ConverterKind.Date;
fieldBuilder.Converter.Arg1 = "dd/MM/yyyy";
}