DateTime.AddHours提供错误的输出和日期时间格式更改

Hel*_*llo 5 c# datetime

我想要DateTime以下格式.

DateTime a = Convert.ToDateTime(DateTime.UtcNow.ToString("s") + "Z");
Run Code Online (Sandbox Code Playgroud)

输出:

2018-05-29T09:16:59Z
Run Code Online (Sandbox Code Playgroud)

我想要subtract从这个时间开始4个小时.所以我使用了这行代码:

var result = a.AddHours(-4);
Run Code Online (Sandbox Code Playgroud)

现在,不仅显示错误的时间,上述格式也受到干扰.

29-05-2018 10:52:51
Run Code Online (Sandbox Code Playgroud)

预期产出:

2018-05-29T05:16:59Z
Run Code Online (Sandbox Code Playgroud)

Ter*_*nox 1

要使 UTCNow 减去 4 小时,您需要执行以下操作:

var fourHoursAgo = DateTime.UtcNow.AddHours(-4);
Console.WriteLine("fourHoursAgo: " + fourHoursAgo.ToString("yyyy-MM-ddTHH:mm:ssK"));
Run Code Online (Sandbox Code Playgroud)

这将给出如下输出:

2018-05-29T05:36:18Z

这基本上是 ISO 8601 格式,与 DateTime.ToString("s") 非常相似,但包括时区(在本例中为“Z”。)