C# FieldConverter ConverterKind.日期不支持“;年月日HH:MM:ss.ffffff“;

C# FieldConverter ConverterKind.日期不支持“;年月日HH:MM:ss.ffffff“;,c#,.net,datetime-format,flat-file,filehelpers,C#,.net,Datetime Format,Flat File,Filehelpers,我正在尝试使用文件帮助程序库读取带分隔符的平面文件 [FieldConverter(ConverterKind.Date, "yyyy/MM/dd HH:mm:ss.ffffff")] public DateTime DateOfInteraction; 但我得到了以下例外 FileHelpers.ConvertException未处理 HResult=-2146233088 消息=将“2015-09-20 23:40:07.707000”转换为“日期时间”时出错。使用格式:“yyyy/MM/

我正在尝试使用文件帮助程序库读取带分隔符的平面文件

[FieldConverter(ConverterKind.Date, "yyyy/MM/dd HH:mm:ss.ffffff")]
public DateTime DateOfInteraction;
但我得到了以下例外

FileHelpers.ConvertException未处理 HResult=-2146233088 消息=将“2015-09-20 23:40:07.707000”转换为“日期时间”时出错。使用格式:“yyyy/MM/dd HH:MM:ss.ffffff” Source=文件帮助程序 列数=80 FieldName=DateOfInteraction FieldStringValue=2015-09-20 23:40:07.707000 行号=2 MessageExtra=使用格式:“yyyy/MM/dd HH:MM:ss.ffffff” MessageOriginal=将“2015-09-20 23:40:07.707000”转换为“DateTime”类型时出错。 堆栈跟踪: 位于FileHelpers.ConvertHelpers.DateTimeConverter.StringToField(字符串来自) 在FileHelpers.FieldBase.AssignFromString(ExtractedInfo fieldString,LineInfo line) 位于FileHelpers.FieldBase.ExtractFieldValue(LineInfo行) 位于FileHelpers.RecordOperations.StringToRecord(对象记录、LineInfo行、对象[]值) 在FileHelpers.FileHelperAsyncEngine
1.ReadNextRecord()中
在FileHelpers.FileHelperAsyncEngine上
在FileHelpers.FileHelperAsyncEngine`1.AsyncEnumerator.MoveNext()中
在c:\MSRS\Old Sys\Practice\CIMStats\TestApplication\Program.cs中的TestApplication.Program.Main(字符串[]args)处:第22行
位于System.AppDomain.\u nExecuteAssembly(RuntimeAssembly程序集,字符串[]args)
位于System.AppDomain.ExecuteAssembly(字符串汇编文件、证据汇编安全性、字符串[]args)
在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()上
位于System.Threading.ThreadHelper.ThreadStart\u上下文(对象状态)
位于System.Threading.ExecutionContext.RunInternal(ExecutionContext ExecutionContext、ContextCallback回调、对象状态、布尔值preserveSyncCtx)
在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态,布尔保存SyncCTX)
在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态)
位于System.Threading.ThreadHelper.ThreadStart()处
内部异常:

即使日期格式字符串是有效的,我也不明白为什么会出现异常。以下代码段提供了正确的输出

Console.WriteLine("Started: {0:dd/MM/yyyy HH:mm:ss.ffffff}", DateTime.Now);

自定义日期格式字符串中的“/”是特定于区域性的日期分隔符。因此,它将被您的区域性的日期分隔符所取代。转换时,必须在区域性设置中指定
InvariantCulture
,而转换时

Great point@AksheyBhat我不知道这一点。我将在转换器中添加警告。MSRS您还可以将该字段读取为字符串,然后在需要时将其转换为代码