gpt4 book ai didi

javascript - 如何使 JavaScript Date.prototype.toString() 始终显示本地时区

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:54 27 4
gpt4 key购买 nike

我设置了一个 UTC+0 时间,并希望它以每台计算机的本地时区显示在不同的计算机上。但是当我在我的计算机(VMware VM)的 Chrome 中运行代码时,它给了我以下信息:

Date.UTC(2014, 0, 27, 6) // 1390802400000
var now = new Date() // Tue Aug 05 2014 07:32:38 GMT-0400 (EDT)
now.getTime() // 1407238358829
new Date(1407238358829) // Tue Aug 05 2014 07:32:38 GMT-0400 (EDT)
new Date(1390802400000) // Mon Jan 27 2014 01:00:00 GMT-0500 (EST)

我的电脑是 GMT-4,但为什么最后一行显示的是美国东部时间而不是美国东部时间?

我还在其他计算机上尝试了相同的代码,例如 EC2 实例(GMT+0)和我 friend 的(GMT+8),这些计算机将只显示其本地时区的时间。

但为什么我的电脑显示其他时区的时间?

最佳答案

代码运行正常。这就是时区的实际运作方式。希望一些适当的术语能为您消除困惑。

“时区偏移量”与“时区”相同。您可以在 the timezone tag wiki 中的“时区!= 偏移量”部分阅读更多相关信息。 .

你说:

My computer is in GMT-4

这是不正确的。您的计算机处于北美“东部时间”时区。在 Linux/Mac 上,这可能会显示为 "America/New_York"。在 Windows 上,它将在您的控制面板中显示为“东部时间(美国和加拿大)”。

此时区的时区偏移量在冬季月份为 UTC-05:00,在夏令时生效的夏季月份为 UTC-04:00。我们分别称这些为“东部标准时间”(或 EST)和“东部夏令时”(或 EDT)。虽然有时这些被称为“时区”,但您可能希望将它们视为“时区段” - 因为它们仅指代实际时区的部分

回顾一下:

EST = Eastern Standard Time = UTC-05:00 = GMT-5
EDT = Eastern Daylight Time = UTC-04:00 = GMT-4

ET = Eastern Time = "America/New_York" = "Eastern Time (US & Canada)"
- Uses EST in the winter
- Uses EDT in the summer

new Date(1390802400000) 显示为 EST,因为该值是在一月份,也就是冬天。

你还说:

I also try the same code on other computers such as EC2 instance(GMT+0) and my friend's(GMT+8), these computers will only display time of their local time zone.

EC2 实例可能配置为 UTC。这是服务器的最佳实践。这意味着它将始终 具有零偏移量。它不会因夏令时而改变。

您 friend 的计算机可能处于不遵循夏令时的时区。例如(我在这里猜测),也许他在中国使用的 "Asia/Shanghai" 时区。由于中国不使用夏令时,他的偏移量永久为UTC+08:00。

You can see a list of time zones and their offsets here.

关于javascript - 如何使 JavaScript Date.prototype.toString() 始终显示本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25139132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com