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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top