カスタムフォーマット指定子DateTimeOffset
を使用してフォーマットできるはずです。必要に応じて、それをその後に変換できます。サンプルコード:K
DateTime
using System;
using System.Globalization;
class Test
{
static void Main()
{
string text = "2013-07-03T02:16:03.000+01:00";
string pattern = "yyyy-MM-dd'T'HH:mm:ss.FFFK";
DateTimeOffset dto = DateTimeOffset.ParseExact
(text, pattern, CultureInfo.InvariantCulture);
Console.WriteLine(dto);
}
}
注意すべきことの 1 つは、これは不適切な名前であるということです。これは実際にはタイム ゾーンではなく、単なる UTC オフセットです。実際には、元のタイム ゾーンはわかりません。(同時に同じオフセットを監視する複数の異なるタイム ゾーンが存在する可能性があります。)
またはNoda Time (不安定なバージョンで、まもなく 1.2 になります):
string text = "2013-07-03T02:16:03.000+01:00";
OffsetDateTimePattern pattern = OffsetDateTimePattern.ExtendedIsoPattern;
OffsetDateTime odt = pattern.Parse(text).Value;
Console.WriteLine(odt);