使用 FileHelpers 写入 CSV 文件时如何控制日期的输出格式?
我正在使用 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();
}
I'm using the FileHelpers 2.0 library to write a CSV file using the ClassBuilder
class to generate a record type.
My data contains dates and so I create a field of type DateTime
, but when the file is generated the date values come out in the format ddmmyyyy
rather than dd/mm/yyyy
e.g. 28042000
instead of 28/04/2000
.
I've set the DateFormat
property of the CsvOptions
class to "dd/MM/yyyy"
but it doesn't help.
Here is the code that generates the record type:
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();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,您需要使用
FieldBuilder
类的Converter
属性。将以下代码块添加到我的方法中可以让我在生成的 CSV 文件中自定义日期格式。
It turns out you need to use the
Converter
property of theFieldBuilder
class.Adding the following block of code to my method allows me to customise the date format in the resulting CSV file.