我相信时区api给了我错误的育空偏移值。使用lat/long 60.7211871/-135.0568448,我得到以下抵消:
{
"dstOffset": 0,
"rawOffset": -28800,
"status": "OK",
"timeZoneId": "America/Vancouver",
"timeZoneName": "Pacific Standard Time"
}但是正确的时区应该是UTC/GMT-7小时,这样我们的rawOffset应该是
{
"dstOffset": 0,
"rawOffset": -25200,
...
}发布于 2020-11-16 22:51:02
补偿不是问题所在。问题是,你给出的坐标,在加拿大育空的怀特霍斯,是作为America/Vancouver时区的一部分而不是America/Whitehorse返回的。
我检查并得到了和你一样的结果。我还得到温哥华附近的道森市,这也是不正确的。
正如您所指出的,这一切都与育空时区最近的变化有关。以前,IANA时区America/Whitehorse和America/Dawson与America/Vancouver处于相同的逻辑时间,但由于更改,它们现在更好地与America/Creston、America/Dawson_Creek和America/Fort_Nelson组合在一起。
可靠的开放源码时区边界生成器项目有此正确之处。然而,谷歌地图时区API似乎不是在使用这个源,而是使用它们自己的,而且它还没有针对最近的变化进行更新。
我有向Google提交了一个bug。你可以根据这个问题来获得更新。
您也可以尝试使用其中一种选择。
更新:谷歌已经解决了这个问题。
https://stackoverflow.com/questions/64865581
复制相似问题