datetime.parse und damit es mit einem bestimmten Format funktioniert


141

Ich habe eine Datums- / Uhrzeitangabe, die von einer XML-Datei im folgenden Format zurückkommt:

20080916 11:02

wie in

yyyymm hh: ss

Wie kann ich die Funktion datetime.parse dazu bringen, dies zu erfassen? Dh es ohne Fehler analysieren? Prost

Antworten:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

Angenommen, Sie wollten sagen, dass Minuten auf Stunden und nicht auf Sekunden folgen - Ihr Beispiel ist etwas verwirrend.

In der ParseExact-Dokumentation werden andere Überladungen beschrieben, falls die Analyse automatisch in die Weltzeit oder ähnliches konvertiert werden soll.

Wie @ Joel Coehoorn erwähnt, gibt es auch die Möglichkeit, TryParseExact zu verwenden , das einen booleschen Wert zurückgibt , der den Erfolg oder Misserfolg des Vorgangs anzeigt. Ich bin immer noch in .NET 1.1, daher vergesse ich diesen oft.

Wenn Sie andere Formate analysieren müssen, können Sie die Standard-DateTime-Formatzeichenfolgen überprüfen .


11
Vergessen Sie nicht DateTime.TryParseExact ()
Joel Coehoorn

Außerdem: Standard-XML hat ein eigenes, sehr spezifisches DateTime-Format, und die .Net Xml-Tools sollten es lesen können.
Joel Coehoorn

In diesem Fall funktioniert es in Ordnung mit dem letzten Parameter als null, aber für jeden, der diese CultureInfo.InvariantCulture findet, können Probleme auftreten, wenn Ihre Datums- / Uhrzeit ungefähr "1823/01/01" ist.
Todilo

@ JoelCoehoorn standard XML specific DateTime format?
Kiquenet

10

Vielen Dank für den Tipp, ich habe dies verwendet, um mein Datum "20071122" zu analysieren. Ich musste Datenzeitstile hinzufügen. Ich habe keine verwendet und es hat funktioniert:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.