質問
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.Parse()
によって返されるDateTimeに追加できます。
これには文字列の解析が少し必要ですが、正規表現を少し使えば大丈夫です...
これは標準の形式文字列ではありませんが、正確な形式はわかっているので、 DateTime.ParseExact
を使用してカスタム形式の文字列。次のようになります。
DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);
「zzz」指定子は、UTCからの時間と分オフセットを表し、2つの最後のゼロは、処理している形式に一致するリテラルにすぎません。
所属していません StackOverflow