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.FileHelperAsyncEngine1.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您还可以将该字段读取为字符串,然后在需要时将其转换为代码