时区之间的日期转换是不同的

Date Conversion is different between Time Zones

本文关键字:是不同 转换 日期 时区 之间      更新时间:2023-09-26

我正在尝试转换日期,但在时区之间的设置日期显示不同。

new Date(1404100800000)
Mon Jun 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)
new Date(1404100800000)
Sun Jun 29 2014 21:00:00 GMT-0700 (Pacific Daylight Time)

为什么会这样?我一定是不理解日期。

这是预期的。时间戳数字测量的时间与时区无关。当转换为人类可读的格式时,它将根据系统的时区而更改。这正是你所期望的,所以下午6点在纽约发生的事件不会在下午6点在旧金山发生……但是它们将具有相同的时间戳。

来自ECMA标准:

从1970年1月1日开始,时间在ECMAScript中以毫秒为单位测量UTC。在时间值中,闰秒被忽略。假设有正好是86,400,000毫秒,每天

http://www.ecma-international.org/ecma-262/5.1/sec-15.9.1.1

转换为字符串取决于区域设置:

这个函数返回一个String值。字符串的内容是的实现相关的,但打算表示中的Date当前时区以方便、易读的形式显示。

http://www.ecma-international.org/ecma-262/5.1/sec-15.9.5.2