Ich habe ein Problem, bei dem eine bestimmte Zeitangabe im Google Mail Atom-Feed nicht mit DateTime.Parse()
analysiert wird. Ich verstehe, ich könnte DateTime.TryParse () verwenden, aber ich bin neugierig, warum diese beiden nicht funktionieren, wo alle anderen tun.
Die spezifische Ausnahme ist:
System.FormatException: Die von der Zeichenfolge dargestellte DateTime wird im Kalender System.Globalization.GregorianCalendar nicht unterstützt.
Mein Verdacht ist, dass es wegen der Stunde 24 ... eher als 00 ist, aber ich bin mir nicht sicher, wie ich das korrigieren würde.
Wenn es nur 24
anstelle von 00
ist, können Sie es einfach ersetzen und einen Tag hinzufügen:
Der DateTime-Eintrag in MSDN besagt, dass ISO 8601 , die sowohl 24 als auch 00 erlaubt. Es sollte das Format vom Typ [YYYY][MM][DD]T[hh][mm]Z
zB erlauben. 2010-01-04T14:04Z
.
Mitternacht ist ein spezieller Fall und kann sein sowohl als "00:00" als auch als "00:00" bezeichnet "24:00 Uhr" Die Schreibweise "00:00" wird verwendet am Anfang eines Kalendertages und wird häufiger verwendet. Bei der Ende eines Tages verwenden Sie "24:00". Beachten Sie, dass "2007-04-05T24: 00" ist der selbe Moment als "2007-04-06T00: 00" (siehe Kombiniert Datum und Zeit Darstellungen unten).
Die gleiche Idee wie md5sum, aber ein anderer Weg:
%Vor%Sie müssen trotzdem überprüfen, ob das Datum korrekt ist.
stellt sich heraus, dass Google den w3c-Standard für Datum und Uhrzeit verwendet: Ссылка , was c # nicht unterstützt? komisch, aber nicht so komisch.
Dieses Projekt scheint das für Sie zu implementieren.
edit: Ja, ich sehe jetzt, dass Google es nicht richtig macht, aber es gibt eine Ausnahme dafür in der w3cdate c # Struktur.