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

How to convert unix timestamp to JavaScript date object (consider time zone)

本文关键字:对象 时区 日期 JavaScript unix 时间戳 转换      更新时间:2024-03-16
var date = new Date(1257397200000​);
document.write(date);
​

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

我正在寻找一种基于不同时区创建日期对象的方法,例如对于该时间戳,我想获取像Thursday, November 5th 2009, 00:00:00 (GMT -5)这样的日期对象。

请注意,根据上述两个时区,日期是不同的,尽管它们代表相同的时间点。我在 CST 中,这就是使用 CST 生成创建的对象的原因吗?

谢谢。

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

Date JavaScript 中的对象与时区无关,它只表示时间点。Date.toString()包含时区的事实非常具有误导性,Date中没有时区信息。它只是自纪元以来毫秒的包装器。

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

顺便说一句,您的示例代码打印:

Thu Nov 05 2009 06:00:00 GMT+0100 (CET)

在我的电脑上 - 这仍然是相同的时间点。

参见

  • 烦人的JavaScript时区调整问题