1

c#を使用してiCalendarの日付を.netに解析する直接的な方法はありますか? iCalendar の日付は次のようになります。

2009-08-11T10:00+05:0000

わかりやすい形式で表示するには、解析する必要があります...ありがとう

4

3 に答える 3

1
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で解析しました。

于 2009-09-14T00:07:28.457 に答える
0

DateTime.Parse()+の前のすべてを解析するために使用できます。iCalendar形式の仕様はわかりませんが、+の後は、+の前の日付に追加する時間/分だと思います。したがって、を使用AddHours()AddMinutes()て、によって返されるDateTimeに必要なビットを追加できますDateTime.Parse()

これには少しの文字列解析が必要ですが、少しの正規表現があれば問題ありません...

于 2009-09-13T23:40:31.110 に答える
0

これは標準のフォーマット文字列ではありませんが、正確なフォーマットを知っているので、次のようにカスタム フォーマット文字列DateTime.ParseExactを使用して指定できます。

DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);

「zzz」指定子は、UTC からの時間と分のオフセットを表し、最後の 2 つのゼロは、扱っている形式に一致する単なるリテラルです。

于 2009-09-14T00:38:40.747 に答える