100

" " にフォーマットしたい DateTime2009-09-01T00:00:00.000Zがありますが、次のコードでは " 2009-09-01T00:00:00.000+01:00" (両方の行)が得られます。

new DateTime(2009, 9, 1, 0, 0, 0, 0, DateTimeKind.Utc).ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffzzz")
new DateTime(2009, 9, 1, 0, 0, 0, 0, DateTimeKind.Utc).ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffzzz")

それを機能させる方法はありますか?

4

8 に答える 8

189
string foo = yourDateTime.ToUniversalTime()
                         .ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
于 2009-11-30T16:45:21.683 に答える
5

DateTimeOffsetクラスを使用したい。

var date = new DateTimeOffset(2009, 9, 1, 0, 0, 0, 0, new TimeSpan(0L));
var stringDate = date.ToString("u");

申し訳ありませんが、ミリ秒で元のフォーマットを逃しました

var stringDate = date.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
于 2009-11-30T16:45:52.417 に答える
-4

これを試して:

DateTime date = DateTime.ParseExact(
    "Tue, 1 Jan 2008 00:00:00 UTC", 
    "ddd, d MMM yyyy HH:mm:ss UTC", 
    CultureInfo.InvariantCulture);

以前の質問

于 2009-11-30T16:41:57.073 に答える