2016-07-11 3 views
2

日付の時刻形式に関する質問があります。
私は日時を表す文字列を持っています: "2014-08-01T10:12:11.0Z"。実際には、わかっているように、 'Z'は私がUTCからオフセットしていることを示しているので、それはutc形式の日時です。DateTimeがUTC形式であるかどうかをチェックします。

そして、私は私の文字列は、UTC時刻を表す場合だけチェックする(VALUE_はちょうど私の新しく作成されたDateTimeオブジェクトである場合)

DateTime.TryParseExact("2014-08-01T10:12:11.0Z", "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out value_); 

を実行してみてください。この表現は私に「偽」を与えます。

「yyyy-MM-ddTHH:mm:ssZ」の代わりにどのような形式を使用する必要がありますか、それとも別のものを変更する必要がありますか?

答えて

1

文字列の末尾の.0は、秒の1/10なので、解析文字を追加する必要があります(F)。

また、Zの解析文字はKであり、Zではありません。だから、あなたがこれを行う必要があります、その文字列を解析する

DateTime.TryParseExact("2014-08-01T10:12:11.0Z", "yyyy-MM-ddTHH:mm:ss.FK", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out value); 

はまた、(それはUTC時間ではなかったつまり場合)は、文字列のタイムゾーン情報が解析されるようにする場合に注意それは、タイムゾーンのオフセットに置き換えZ、+ VEのか-veで次のようになります。

"2014-08-01T10:12:11.0-07:00" // Note time zone offset at the end. 
+0

を「純粋に*として」 '*値を処理するために、日付/時刻のロジックを考案することは非常に良いアイデアです不透明なこと "基礎となるnumeric-or-otherwise値をテストしたり仮定したりしないでください。" Zulu time "その値が「タイムゾーンゼロ」に変換され、その値が信頼されるようにします。 「ここの現地時間」(またはどこか...)が必要な場合は、明示的にそれを求めます。 –

関連する問題