2016-06-14 1 views
1

J'essaie de lire un fichier plat délimité à l'aide de la bibliothèque d'aide de fichier.FieldConverter ConverterKind.Date ne prenant pas en charge "jj/mm/aaaa HH: mm: ss.ffffff"

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

Mais je reçois l'exception suivante

FileHelpers.ConvertException était non gérée HResult = -2146233088 message = erreur Conversion '20/09/2015 23: 40: 07,707000' taper : 'DateTime'. En utilisant le format: 'aaaa/MM/JJ HH: mm: ss.ffffff' Source = FileHelpers ColumnNumber = 80 FieldName = DateOfInteraction FieldStringValue = 20/09/2015 23: 40: 07,707000 LineNumber = 2 MessageExtra = En utilisant le format: 'aaaa/MM/jj HH: mm: ss.ffffff' MessageOriginal = Erreur Convertir '2015-09-20 23: 40: 07.707000' pour taper: 'DateTime'. StackTrace: à FileHelpers.ConvertHelpers.DateTimeConverter.StringToField (String de) à FileHelpers.FieldBase.AssignFromString (ExtractedInfo fieldString, ligne LineInfo) à FileHelpers.FieldBase.ExtractFieldValue (ligne LineInfo) à FileHelpers.RecordOperations.StringToRecord (Object enregistrement, ligne LineInfo, objet [] valeurs) à FileHelpers.FileHelperAsyncEngine 1.ReadNextRecord() at FileHelpers.FileHelperAsyncEngine 1.ReadNext() à FileHelpers.FileHelperAsyncEngine`1.AsyncEnumerator.MoveNext() à TestApplication.Program.Main (String [] args) à c: \ MSRS \ Vieux Sys \ Practice \ CIMStats \ TestApplication \ Program.cs: ligne 22 à System.AppDomain._nExecuteAssembly (RuntimeAssembly assembly, String [] args) à System.AppDomain.ExecuteAssembly (String assemblyFile, preuve assemblySecurity, String [] args) à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() à System.Threading.ThreadHelper.ThreadStart_Context (état d'objet) à System.Threading .ExecutionContext.RunInternal (ExecutionContext executionContext, rappel ContextCallback, état Object, Boolean preserveSyncCtx) à System.Threading.ExecutionContext.Run (ExecutionContext executionContext, rappel ContextCallback, état Object, Boolean preserveSyncCtx) à System.Threading.ExecutionContext.Run (ExecutionContext executionContext, callback ContextCallback, état de l'objet) at System.Threading.ThreadHelper.ThreadStart() InnerException:

Je n'ai pas compris pourquoi j'obtiens l'exception même si la chaîne de format de date est valide. L'extrait de code suivant donne la sortie correcte ...

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

Répondre

2

"/" dans une chaîne de format de date personnalisé est un DateSeparator spécifique à la culture. Il est donc remplacé par le séparateur de date pour votre culture. Alors que vous devez spécifier la conversion InvariantCulture dans les milieux de la culture lors de la conversion

+0

Est-ce que cela signifie pour mettre en œuvre un convertisseur de mesure? – MSRS

+0

Ouais je suppose que oui –

+0

Merci ... Je vais essayer. – MSRS