我知道new Date().getTimezoneOffset()
说明了本地用户的时区&夏令时,但是如何计算当前在蒂姆布克图当地的当地时间?
答案 0 :(得分:3)
JavaScript没有内置于该语言的时区数据库(通过阅读the spec可以看到)。相反,它只有“本地时间”和“UTC时间”的概念,只有一个本地时区。
可能有一个用于获取时区数据库的浏览器API,但我从未听说过它。有一些第三方项目与这些数据库连接;快速搜索出现timezone-js。
答案 1 :(得分:1)
我怀疑是否有任何算法可以满足您的需求。世界各国经常选择不遵守标准时区规则。更糟糕的是,夏令时的转换日期不同。
我可以考虑检查3个来源:
Jeppesen是波音的子公司,是全球航空导航信息的主要民用供应商。我刚刚查看了我的旧Jeppesen手册,我在13年前退休时停止了每周更新。它给出了世界上所有主要机场的时区以及DST变化的日期。转到here获取联系信息。我怀疑到现在它可以方便地以电子方式获得,但Jeppesen并没有免费提供任何东西。
国际民航组织,国际民用航空组织(我认为是联合国的一部分)我认为应该保留这些信息,但我对DST数据不太确定。我相信他们的数据可以免费或象征性收费。
国际航空运输协会IATA也可能会保留这些数据。我认为最后两个组织可能会对一个带有该数据的URL的简单请求作出积极回应,如果他们知道一个。
此外,如果可以获得任何航班调度员在国际航班上的工作,他们必须提供这些信息。
另外,请检查this以及其他您是否会查看Google"航空公司时区和dst数据。"
答案 2 :(得分:-1)
简单的部分是时区。您可以通过从日期减去时区* 60 * 60秒,然后将新时区* 60 * 60添加到日期来找到默认(+0)时区。
然后,只需要用你想要的时间来制作:
d = new Date(year, month, day, hours, minutes, seconds, milliseconds)