質問

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つの最後のゼロは、処理している形式に一致するリテラルにすぎません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top