iCalendar Datum mit c # parsen
Frage
Gibt es einen direkten Weg, um ein iCalendar Datum zu analysieren mit c # .NET? Ein iCalendar Datum sieht wie folgt aus:
2009-08-11T10:00+05:0000
Ich brauche es zu analysieren, sie in einem freundlichen Format anzuzeigen ... Dank
Lösung
string strDate = "2009-08-11T10:00+05:0000";
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.FullDateTimePattern = "yyyy-MM-ddTHH:mmzzz";
DateTime dt = DateTime.Parse(c.Substring(0, c.Length-2), dtfi);
zzz ist für die Zeitzone, sondern wird nur erkannt, wenn wie folgt ausgedrückt: + xx: xx. Getestet habe ich mit Ihrem Beispiel die letzten 2 0'en entfernen dann mit einem benutzerdefinierten Parsen Datetime funktioniert.
Andere Tipps
Sie können DateTime.Parse()
verwenden, um alles zu analysieren, bevor die +. Ich weiß nicht, die iCalendar-Format-Spezifikation aber ich nehme an, nachdem die + die Stunden / Minuten bis zum Tag vor dem + hinzuzufügen. So könnte man dann AddHours()
und AddMinutes()
verwenden, um die erforderlichen Bits zum Datetime von DateTime.Parse()
zurück hinzuzufügen.
Dies erfordert ein wenig String-Parsing, aber mit einem bisschen regex sollten Sie in Ordnung sein ...
Da dies kein Standard-Format-String ist, aber Sie wissen, das genaue Format, Sie DateTime.ParseExact
verwenden können, und geben Sie eine benutzerdefinierte Format-String , wie folgt aus:
DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);
Die ‚zzz‘ spezifizierer stellt die Stunden und Minuten von UTC-Offset und die beiden abschließenden Nullen sind nur Literale Format entsprechen, mit denen man es zu tun.