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

为何getTimezoneOffset()的返回值会随传入日期变化?

为什么不同日期调用getTimezoneOffset()返回不同的时区偏移值?

这是因为时区偏移值并非固定不变,它会随历史时区规则变更而变化:

  • 很多地区的时区政策(比如夏令时的启用/取消、标准时偏移调整)在不同年份有过修改,部分地区甚至在不同历史时期属于完全不同的时区体系。
  • getTimezoneOffset()方法返回的是本地时区在指定日期对应的UTC偏移量,它会根据该日期当时适用的时区规则计算,而不是返回一个固定的当前时区偏移。

你给出的代码示例正好体现了这种历史变更:

new Date('2016-05-01T03:24:00Z').getTimezoneOffset()
> -120
new Date('1950-05-01T03:24:00Z').getTimezoneOffset();
> -60
new Date('1900-05-01T03:24:00Z').getTimezoneOffset();
> -84

三个不同年份的日期,对应本地时区在当时的UTC偏移分别是UTC+2、UTC+1、UTC+1小时24分钟,所以返回的偏移值(以分钟为单位,符号与UTC偏移相反)各不相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:50:11