tmp*_*dev 16 javascript time iso utc iso8601
我试图了解 UTC 和 ISO 格式之间的区别以及在服务器之间传输消息时何时使用什么。所以当我尝试以下这就是我得到的
new Date().toISOString()
"2019-11-14T00:55:31.820Z"
new Date().toUTCString()
"Thu, 14 Nov 2019 00:55:16 GMT"
Run Code Online (Sandbox Code Playgroud)
我了解 ISO 格式及其用于表示时间的标准,但 UTC 的目的是什么,我将在哪里使用它们?
Bas*_*que 47
2019-11-14T00:55:31.820ZThu, 14 Nov 2019 00:55:16 GMTUTC 和 GMT 不是格式。
UTC和GMT是两种略有不同的时间跟踪方式。这是一个复杂的主题,因此如果您真的想知道,请参阅维基百科页面以了解详细信息。
对于普通的商业应用,没有显着差异,字面上的差异不到一秒。大多数程序员可以互换使用这些术语。如果您为 NASA 或 GPS/Galileo 导航项目工作,那么您会想要了解更多信息。
您在第一个示例中看到的格式2019-11-14T00:55:31.820Z由ISO 8601标准定义。
T中间分隔开来时,分,第二部分年-月-日部分。Z对端装置UTC,即,偏移从-UTC零小时-分钟-秒。根据Z军事/航空传统发音为“祖鲁语”。ISO 8601 标准更加现代。这些格式经过精心设计,易于机器解析,也易于跨文化的人类阅读。
将日期时间值序列化为文本时,始终选择 ISO 8601。
您的第二个示例字符串Thu, 14 Nov 2019 00:55:16 GMT在旧标准RFC 1123 & RFC 822 中定义。
这些是旧格式。它们很糟糕,很难被机器解析。而且它们对人类有害,因为它们假定英语语言和特定的文化规范。
尽可能避免这种格式。仅在尚未针对 ISO 8601 更新的旧协议和系统需要时才使用此选项。
您的示例2019-11-14T00:55:31.820Z意味着与 UTC 零时分秒的偏移量。这是站在格林威治皇家天文台时钟前看到的时间和日期。
(图片来源)
一个小时后,挂在突尼斯墙上的时钟上看到的同一时刻显示:2019-11-14T01:55:31.820+01:00[非洲/突尼斯]。突尼斯的时区Africa/Tunis是一个小时提前在那一刻UTC的,正如指出的+01:00。
挂在魁北克墙上的时钟上看到的同一时刻显示前一天晚上 8 点左右:2019-11-13T19:55:31.820-05:00[美国/蒙特利尔]。魁北克省的时区America/Montreal5个小时的背后在那一刻UTC,正如指出的-05:00。
您可以看到这些计算是使用在 IdeOne.com上实时运行的 Java 代码(不是您的问题中标记的 JavaScript)进行的。
一般最好在UTC中做大部分的思考、业务逻辑、数据存储、数据交换和登录。仅在业务规则需要时以及向用户呈现值时调整到时区。
| 归档时间: |
|
| 查看次数: |
15666 次 |
| 最近记录: |