解析したいDateTime-Stringsをc#DateTimeにまとめました。
2009-06-18 02:10:31.296761+00
2009-06-18 02:13:34.049145+00
2009-01-06 23:52:21.510121+00
2009-06-18 02:17:57.268252+00
2010-01-22 03:31:26.512496+00
2009-06-18 01:32:37.930961+00
私は現在、次のコード行でDateTime-Objectを取得しようとしています。
DateTime.ParseExact(str, "yyyy-MM-dd HH:mm:ss.FFFK", CultureInfo.InvariantCulture, DateTimeStyles.None);
しかし、私は常にSystem.FormatExceptionを取得しています。
特別なことをする必要はありません。単純なDateTime.Parse
動作:
DateTime myDate1 = DateTime.Parse("2009-06-18 02:10:31.296761+00");
DateTime myDate2 = DateTime.Parse("2009-06-18 02:10:31.296761+03");
両方の行が機能し、結果の日付はオフセットを考慮に入れます。
これが機能する理由は、指定した形式が標準の日時形式の1つであるためです。具体的には、ISO 8601ではなく ユニバーサルソート可能形式 です。
ISO 8601は roundtrip 形式に対応し、日付と時刻を区切るために ''の代わりに 'T'を使用します。