You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

西海岸时区下,带零时分秒的Date为何超前8小时?时差为何非7小时?

问题解答

一、两个Date实例时间不同的原因

JavaScript的Date构造函数对不同格式的日期字符串解析规则存在差异:

  • 对于new Date('2023-01-01')这种仅日期的ISO 8601格式字符串,会默认以UTC时区的0点解析该日期,再转换为你的本地时区显示。UTC的2023-01-01 0:00转换为太平洋标准时间(UTC-8)就是2022-12-31 16:00,这是第一个实例的结果。
  • 对于new Date('2023-01-01 0:0:0.000')这种带时分秒的非标准ISO格式字符串,会直接以你的本地时区的0点解析,因此得到的是太平洋标准时间2023-01-01 0:00。

二、时差显示为8小时而非7小时的原因

美国西海岸的太平洋时区(PT)分夏令时(PDT,UTC-7)和冬令时(PST,UTC-8):

  • 夏令时通常覆盖每年3月至11月,冬令时覆盖11月至次年3月。
  • 2023年1月1日处于冬令时时段,此时本地时区为UTC-8,所以显示的时差是GMT-0800,而非夏令时的GMT-0700。

验证代码

const d = new Date('2023-01-01'); 
const d2 = new Date('2023-01-01 0:0:0.000'); 

运行结果

Sat Dec 31 2022 16:00:00 GMT-0800 (Pacific Standard Time)
Sun Jan 01 2023 00:00:00 GMT-0800 (Pacific Standard Time)

内容的提问来源于stack exchange,提问作者Jeb50

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:57:45