2012-03-30 7 views
0

Meine Aufgabe besteht darin, Daten aus XML-Datei abzurufen. Jeder Knoten in der XML-Datei enthält Datum und Uhrzeit. Zum Lesen und Konvertieren verwende ich Folgendes:FormatException beim Konvertieren von Zeichenfolge in DateTime

date = DateTime.ParseExact (turnoNode.SelectSingleNode ("FechaHoraAlta"). InnerText, "TT/MM/JJJJ hh: mm: ss", CultureInfo.InvariantCulture) ;

Für die ersten beiden Knoten wandelt es Daten korrekt:

<FechaHoraAlta>19/04/2012 10:00:36</FechaHoraAlta> 
<FechaHoraAlta>19/04/2012 11:00:05</FechaHoraAlta> 

Das Problem für den dritten Knoten auftritt enthält:

<FechaHoraAlta>22/04/2012 19:37:52</FechaHoraAlta> 

Dann Format Ausnahme ausgelöst wird sagen, dass Zeichenfolge nicht als erkannt wurde gültige DateTime.

Ich habe versucht, es zu debuggen, alles was ich weiß ist, dass Innertext richtig gelesen wird, es ist "22/04/2012 19:37:52". Es kann es einfach nicht konvertieren, aber ich habe keine Ahnung warum.

Ich sah viele ähnliche Probleme hier auf Stackoverflow, aber bis jetzt habe ich keine richtige Lösung gefunden.

Weiß jemand, was das Problem sein kann?

Vielen Dank im Voraus.

+0

Vielleicht erwartet 'CultureInfo.InvariantCulture' Zeit im 12H-Format? Probieren Sie "CultureInfo.CurrentCulture" aus – sll

+0

@sll: Es ist nicht die Kultur, die es erwartet - es ist das Muster. –

+0

@Jon: Gotcha, jetzt sehe ich, schöner Fang! – sll

Antwort

4

Schauen Sie sich Ihr Format Muster:

"dd/MM/yyyy hh:mm:ss" 

"hh" bedeutet eine zwölf Stunden Uhr, in der Regel in Verbindung mit "tt" für die AM/PM-Bezeichner. Also 19 ist kein gültiger Wert. Sie möchten "HH" anstelle von "hh", da "HH" die 24-Stunden-Uhr verwendet.

Weitere Informationen finden Sie unter MSDN unter custom date and time format strings.

+0

Danke, du hast Recht, jetzt funktioniert es. Ich habe nicht darüber nachgedacht. Vielen Dank! – movax