如何将 DateTime 格式化为 Web UTC 格式?
我有一个 DateTime,我想将其格式化为“2009-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")
有什么想法让它发挥作用吗?
I have a DateTime which I want to format to "2009-09-01T00:00:00.000Z
", but the following code gives me "2009-09-01T00:00:00.000+01:00
" (both lines):
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")
Any ideas how to make it work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
为什么不只使用 往返(“O”,“o”)格式说明符?
Why don't just use The Round-trip ("O", "o") Format Specifier?
返回 2017-02-10T08:12:39.483Z
returns 2017-02-10T08:12:39.483Z
有些人指出“ToUniversalTime”有些不安全,因为它可能会导致意外的错误时间显示。在此基础上,我提供了一个更详细的解决方案示例。此处的示例创建了 DateTime 对象的扩展,该对象安全地返回 UTC DateTime,您可以根据需要使用 ToString...。
Some people have pointed out that ‘ToUniversalTime’ is somewhat unsafe in that it can cause unintended incorrect time dispalys. Expanding on that I’m providing a more detailed example of a solution. The sample here creates an extension to the DateTime object that safely returns a UTC DateTime where you can use ToString as desired….
这段代码对我有用:
This code is working for me:
最好使用的格式是“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffK”。
如果日期是 UTC,则字符串上的最后一个 K 将更改为“Z”;如果是本地日期,则更改为时区 (+-hh:mm)。 (http://msdn.microsoft.com/en-us/library/8kb3ddd4。 aspx)
正如 LukeH 所说,如果您希望所有日期均为 UTC,则最好使用 ToUniversalTime。
最终代码为:
The best format to use is "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffK".
The last K on string will be changed to 'Z' if the date is UTC or with timezone (+-hh:mm) if is local. (http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx)
As LukeH said, is good to use the ToUniversalTime if you want that all the dates will be UTC.
The final code is:
您想要使用 DateTimeOffset 类。
抱歉,我错过了您原来的毫秒格式
You want to use DateTimeOffset class.
sorry I missed your original formatting with the miliseconds
如果您不介意使用
Newtonsoft.Json
:If you don't mind using
Newtonsoft.Json
:试试这个:
之前提出的问题
Try this:
Previously asked question