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

JS Date Europe/Berlin时区1893年UTC转本地时间偏差原因咨询

1893与1894年同日期UTC转柏林本地时间出现6分32秒差值的原因

这个差值是时区历史规则变更导致的正常现象,不属于代码错误。

  • 1893年4月之前,德国没有全国统一的标准时区,柏林地区使用基于本地经度测算的平太阳时,该时间与UTC的偏移为53分28秒,即测试结果中显示的GMT+0053。
  • 1893年3月德意志帝国正式出台时间标准法案,规定从1893年4月1日起,全国统一启用中欧标准时间(CET,偏移为UTC+1),替代此前各地自行使用的本地平太阳时。切换时柏林本地时间直接从1893年3月31日23:53:28跳至次日01:00:00,两个标准的差值恰好为6分32秒。
  • JavaScript的Date对象执行时区转换时,会调用运行环境内置的IANA时区数据库,该数据库完整记录了全球所有时区从古至今的偏移调整、夏令时切换、规则变更信息,不会用当前生效的固定时区偏移倒推计算所有历史时间。

对应测试代码的返回结果完全匹配上述历史规则:

new Date(Date.UTC(1894,0,1))
// Mon Jan 01 1894 01:00:00 GMT+0100 (Central European Standard Time)
// 该时间点在标准切换后,按UTC+1的CET规则计算偏移
new Date(Date.UTC(1893,0,1))
// Mon Jan 01 1893 00:53:28 GMT+0053 (Central European Standard Time)
// 该时间点在标准切换前,按当时柏林本地平太阳时的53分28秒偏移计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.20 16:18:28