2016-06-14 6 views
1

Я пытаюсь прочитать разделительный плоский файл с использованием файловой вспомогательной библиотеки.FieldConverter ConverterKind.Date не поддерживает «dd/MM/yyyy HH: mm: ss.ffffff»

[FieldConverter(ConverterKind.Date, "yyyy/MM/dd HH:mm:ss.ffffff")] 
public DateTime DateOfInteraction; 

Но я получаю следующее исключение

FileHelpers.ConvertException был необработанным HResult = -2146233088 Message = Ошибка Преобразования '2015-09-20 23: 40: 07,707000' к типу : 'DateTime'. Использование формата: 'YYYY/ММ/дд чч: мм: ss.ffffff' Источник = FileHelpers ColumnNumber = 80 Имя_поля = DateOfInteraction FieldStringValue = 2015-09-20 23: 40: 07,707000 LineNumber = 2 MessageExtra = Использование формата: 'yyyy/MM/dd HH: mm: ss.ffffff' MessageOriginal = Преобразование ошибок '2015-09-20 23: 40: 07.707000' для ввода: 'DateTime'. StackTrace: в FileHelpers.ConvertHelpers.DateTimeConverter.StringToField (строка из) в FileHelpers.FieldBase.AssignFromString (ExtractedInfo fieldString, Lineinfo линия) в FileHelpers.FieldBase.ExtractFieldValue (Lineinfo линия) в FileHelpers.RecordOperations.StringToRecord (Object запись, Lineinfo линия, Object [] значения) на FileHelpers.FileHelperAsyncEngine 1.ReadNextRecord() at FileHelpers.FileHelperAsyncEngine 1.ReadNext() в FileHelpers.FileHelperAsyncEngine`1.AsyncEnumerator.MoveNext() в TestApplication.Program.Main (String [] арг) в C: \ MSRS \ Old Sys \ Practice \ CIMStats \ TestApplication \ Program.cs: строка 22 в System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly, String [] args) в System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] арг) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) в System.Threading .ExecutionContext.RunInternal (ExecutionContext ExecutionContext, ContextCallback обратного вызова, состояние объекта, логическое preserveSyncCtx) на System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback обратного вызова, объект состояния, Boolean) preserveSyncCtx в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart() InnerException:

Я не понял, почему я получаю исключение, даже если строка формата даты является действительной. Следующий фрагмент кода дает правильный вывод ...

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

DateTime format

+0

http://stackoverflow.com/questions/4195820/fieldconverter-converterkind-date-dd-mm-yyyy-exception – Slai

ответ

2

«/» в строке пользовательского формата дата культуры конкретной DateSeparator. Поэтому он заменяется разделителем даты для вашей культуры. При преобразовании необходимо указать InvariantCulture в настройках культуры при преобразовании

+0

Означает ли это реализовать пользовательский конвертер? – MSRS

+0

Да, я так думаю –

+0

Спасибо ... Попробуй. – MSRS

 Смежные вопросы

  • Нет связанных вопросов^_^