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.