旧JavaScript日期时区异常疑问:0001-01-01时区偏移解析
关于远古日期解析的时区偏移问题
问题场景
执行代码:
new Date("0001-01-01")
得到结果:Date Mon Jan 01 0001 00:17:30 GMT+0017 (Central European Standard Time)
你的疑问:执行上述代码得到的日期时区令我意外,搜索"Central European Standard Time"未获更多信息。我理解为公元1年时,我的地理位置对应时区为GMT+0017(实际偏移17分30秒),请问该解读是否正确?何处可获取相关信息?此行为是否有明确定义?
解答
- 你的解读完全正确,公元1年时欧洲中部地区的本地时间和格林威治标准时间确实存在17分30秒的偏移,这是历史时区规则的真实记录。
- 这个行为是有明确定义的:JavaScript的
Date对象会调用底层系统的时区数据库(比如IANA时区数据库),这类数据库包含了从远古到现代的所有时区偏移变更数据,解析极早日期时自然会返回对应历史时期的偏移值。 - 相关信息可以从IANA时区数据库的官方文档、系统自带的时区数据说明(比如Linux系统的
tzdata包配套文档)里获取,这些资料详细记录了各地区不同历史阶段的时区规则变化。
内容的提问来源于stack exchange,提问作者KeV
相关产品推荐
相关产品推荐

