我试图理解UTC和ISO格式之间的区别,以及在服务器之间传输消息时什么时候使用什么。所以当我尝试以下内容时,这就是我的结果
new Date().toISOString()
"2019-11-14T00:55:31.820Z"
new Date().toUTCString()
"Thu, 14 Nov 2019 00:55:16 GMT"
我了解ISO格式,它是用于表示时间的标准,但UTC的目的是什么,我在哪里可以使用它们?
我试图理解UTC和ISO格式之间的区别,以及在服务器之间传输消息时什么时候使用什么。所以当我尝试以下内容时,这就是我的结果
new Date().toISOString()
"2019-11-14T00:55:31.820Z"
new Date().toUTCString()
"Thu, 14 Nov 2019 00:55:16 GMT"
我了解ISO格式,它是用于表示时间的标准,但UTC的目的是什么,我在哪里可以使用它们?
2019-11-14T00:55:31.820Z
Thu, 14 Nov 2019 00:55:16 GMT
UTC和GMT是两种略微不同的时间跟踪方式。这是一个复杂的话题,如果你真的想知道详细信息,请参阅维基百科页面。
对于常见的业务应用程序,没有显着的区别,实际上少于一秒钟的差异。大多数程序员可以交替使用这些术语。如果你为NASA或GPS / Galileo导航项目工作,则需要了解更多信息。
在你的第一个示例中看到的格式2019-11-14T00:55:31.820Z
由ISO 8601标准定义。
T
将年月日部分与时分秒部分分开。Z
表示UTC,即偏移量为零小时-分钟-秒。根据军事/航空传统,Z
的发音为"Zulu"。ISO 8601标准更加现代化。这些格式被明智地设计成易于机器解析和易于跨文化人类阅读。
在将日期时间值序列化为文本时,始终选择使用ISO 8601。
您的第二个示例字符串Thu, 14 Nov 2019 00:55:16 GMT
定义在较旧的RFC 1123和RFC 822标准中。
这些是legacy格式。它们很糟糕,难以由机器解析。对于人类而言也不好,因为它们假定英语和特定的文化规范。
尽可能避免使用此格式。仅在旧协议和尚未更新为ISO 8601的系统要求时使用。
你提供的2019-11-14T00:55:31.820Z
的例子表示与UTC相差零小时、零分钟和零秒的偏移量。这是当站在格林威治皇家天文台时看到的日期和时间。
(照片来源)
突尼斯墙上挂着的时钟显示的是一个小时后的同时刻:2019-11-14T01:55:31.820+01:00
[非洲/突尼斯]。突尼斯的时区非洲/突尼斯
在那一刻比协调世界时提前一个小时,如+01:00
所示。
魁北克墙上挂着的时钟显示的是前一天晚上8点差不多的同时刻:2019-11-13T19:55:31.820-05:00
[美洲/蒙特利尔]。魁北克的时区美洲/蒙特利尔
在那一刻比协调世界时晚五个小时,如-05:00
所示。
您可以通过Java代码(而不是标记为您的问题的JavaScript)运行IdeOne.com来查看这些计算。
通常最好在协调世界时中进行大部分思考、业务逻辑、数据存储、数据交换和日志记录。仅在业务规则要求并向用户呈现值时才调整到时区。
2019-11-14T00:55:31.820Z
为例,我如何知道它属于哪个时区?是指820Z
的值吗? - tmp dev2019-11-14T00:55:31.820Z
末尾的“Z”表示伦敦格林威治皇家天文台外面的官方时钟指向子午线时刻,也是冰岛所有使用UTC作为时区的时钟所显示的时间。如果没有“Z”,我们就无法知道这个时间是东京日本的凌晨1点、巴黎法国的凌晨1点还是美国俄亥俄托莱多市的凌晨1点——这些时刻相差数小时,非常不同。 - Basil Bourque<p-calendar>
V.8.2.9 LTS。在 <p-calendar>
中选择的日期以 RFC 的传统格式返回,例如Thu Apr 01 2021 00:00:00 GMT-0400 (Eastern Daylight Time)
。我需要将 RFC 转换为 ISO 字符串。
我简单地按照 this thread 和 this article 所述,使用 JSON.stringify()
包装返回 RFC 格式的变量。
例如:
console.log(date); // Wed Jan 01 2014 13:28:56 GMT-1000 (Hawaiian Standard Time)
var json = JSON.stringify(date);
console.log(json); // "2014-01-01T23:28:56.782Z"
Date
对象的toUTCString
函数有什么作用? - Matt Johnson-Pint