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

anonym0use
quelle

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 .

Blair Conrad
quelle
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);
bert
quelle