如何将unix时间戳转换为JavaScript日期对象(考虑时区)

soz*_*hen 12 javascript date

var date = new Date(1257397200000?);
document.write(date);
?
Run Code Online (Sandbox Code Playgroud)

跑了上面的代码我得到了 Wed Nov 04 2009 23:00:00 GMT-0600 (Central Standard Time)

我正在寻找一种基于不同时区创建日期对象的方法,比如我希望获得日期对象的那个时间戳Thursday, November 5th 2009, 00:00:00 (GMT -5).

请注意,根据上述两个时区,日期不同,但它们代表相同的时间点.我在CST,是为什么使用CST生成创建的对象?

谢谢.

Tom*_*icz 18

不,这些日期没有不同,因为它们不代表不同的时间点.两者都代表着Thu, 05 Nov 2009 05:00:00 GMT.

DateJavaScript中的对象与时区无关,它只代表时间点.Date.toString()包含时区的事实非常误导,没有时区信息Date.它只是一个自epoch以来几毫秒的包装器.

您看到的时区基于操作系统/浏览器区域设置.您无法Date在不同的时区创建对象.考虑使用getUTC*()一系列方法来获取浏览器时区不可知值.

BTW您的示例代码打印:

Thu Nov 05 2009 06:00:00 GMT+0100 (CET)
Run Code Online (Sandbox Code Playgroud)

在我的电脑上 - 这仍然是同一时间点.

也可以看看

  • +1!爱你强调`代表一个时间点'点. (4认同)