.net 使用FileHelpers编写CSV文件时,如何控制日期的输出格式?
我正在使用FileHelpers 2.0库编写CSV文件,使用.net 使用FileHelpers编写CSV文件时,如何控制日期的输出格式?,.net,csv,filehelpers,.net,Csv,Filehelpers,我正在使用FileHelpers 2.0库编写CSV文件,使用ClassBuilder类生成记录类型 我的数据包含日期,因此我创建了一个类型为DateTime的字段,但在生成文件时,日期值的格式是ddmmyyyy而不是dd/mm/yyyyy,例如28042000而不是28/04/2000 我已经将CsvOptions类的DateFormat属性设置为“dd/MM/yyyy”,但它没有帮助 以下是生成记录类型的代码: private Type CreateRecordType()
ClassBuilder
类生成记录类型
我的数据包含日期,因此我创建了一个类型为DateTime
的字段,但在生成文件时,日期值的格式是ddmmyyyy
而不是dd/mm/yyyyy
,例如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();
}
事实证明,您需要使用
FieldBuilder
类的Converter
属性
将下面的代码块添加到我的方法中,可以自定义生成的CSV文件中的日期格式
if (property.Type == typeof(DateTime))
{
fieldBuilder.Converter.Kind = ConverterKind.Date;
fieldBuilder.Converter.Arg1 = "dd/MM/yyyy";
}