c#を使用してiCalendarの日付を.netに解析する直接的な方法はありますか? iCalendar の日付は次のようになります。
2009-08-11T10:00+05:0000
わかりやすい形式で表示するには、解析する必要があります...ありがとう
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はタイムゾーン用ですが、+ xx:xxのように表現された場合にのみ認識されます。私はあなたの例でテストし、最後の2 0を削除してから、カスタムのDateTimeFormatInfoで解析しました。
DateTime.Parse()
+の前のすべてを解析するために使用できます。iCalendar形式の仕様はわかりませんが、+の後は、+の前の日付に追加する時間/分だと思います。したがって、を使用AddHours()
しAddMinutes()
て、によって返されるDateTimeに必要なビットを追加できますDateTime.Parse()
。
これには少しの文字列解析が必要ですが、少しの正規表現があれば問題ありません...
これは標準のフォーマット文字列ではありませんが、正確なフォーマットを知っているので、次のようにカスタム フォーマット文字列DateTime.ParseExact
を使用して指定できます。
DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);
「zzz」指定子は、UTC からの時間と分のオフセットを表し、最後の 2 つのゼロは、扱っている形式に一致する単なるリテラルです。