ISO 8601中的日期时间与javascript中的UTC格式有什么区别?

时间:2014-01-23 06:29:04

标签: javascript date

我在javascript中选择了一些日期和时间,然后想将它存储在服务器(.NET)上。日期应该是从当前时刻开始的(因此它们不会在1970年之前)。 在这里阅读了有关SO的主题后,我了解到最好将日期存储为字符串,人们建议使用Date.prototype.toISOString()Date.prototype.toUTCString()。 我已经读过在IE 7中没有toISOString()。我想知道其他差异,我应该选择一个或另一个函数。

谢谢!

3 个答案:

答案 0 :(得分:29)

两者都不同。 ISO是标准格式时间。 UTC是世界规定时钟和时间的主要时间标准。 ISO还支持其ms格式。

因此,如果要将数据发送到服务器,请发送ISO,因为ISO是标准格式:

var date = new Date();
sendDate(date.toISOString());

您还可以在IE7 polyfill中使用toISOString

答案 1 :(得分:22)

我希望它对你有所帮助。

摘要关于toISOString(): -

toISOString()方法返回ISO格式的字符串(ISO 8601扩展格式),可以描述如下:YYYY-MM-DDTHH:mm:ss.sssZ。时区始终为UTC,后缀为“Z”。

有关toISOString()的详细信息,请参阅以下链接。

Date.prototype.toISOString()

摘要关于toUTCString(): -

toUTCString()方法使用UTC时区将日期转换为字符串。

有关toUTCString()

的详情,请参阅以下链接

Date.prototype.toUTCString()

答案 2 :(得分:1)

您应该使用.toISOString()

它们提供几乎相同的信息,但格式不同。这是我在机器上得到的。

new Date().toISOString()
"2019-10-11T18:56:08.984Z"

new Date().toUTCString()
"Fri, 11 Oct 2019 18:56:08 GMT"

.toISOString().toUTCString()更常见是您想要的两个原因。

A。排序更方便

尽管.toUTCString()对于非计算机人士来说更容易识别,但将其作为字符串进行排序不会给出日期时间顺序。

相反,.toISOString()的“ 2019-10-11T18:56:08.984Z”可以方便地作为字符串进行排序。

B。毫秒精度

.toISOString()提供毫秒值,而.toUTCString()不提供毫秒值。