给定一个位置的纬度和经度,如何知道该位置的有效时区?
在大多数情况下,我们寻找的是IANA/Olson时区id,尽管有些服务可能只返回UTC偏移量或其他时区标识符。有关详细信息,请阅读timezone tag info。
发布于 2013-04-18 23:24:10
时区位置网络服务
原始时区边界数据
以下项目以前是时区边界数据的来源,但不再进行主动维护。
中
时区地理位置离线实施
使用时区边界构建器数据的实现
Java和Android库(
使用较旧tz_world数据的实现
libraries
调用某个web服务的库
自托管web服务
获得
Other Ideas
最近的城市查找最近的城市with MySQL with an R-Tree
如果您知道其他列表,请更新此列表
此外,请注意,最近城市方法可能不会产生“正确”的结果,而只是一个近似值。
到Windows Zones的转换
列出的大多数方法都将返回IANA时区id。如果需要转换为Windows时区以便与.NET中的TimeZoneInfo类一起使用,请使用TimeZoneConverter库。
不使用zone.tab
tz database包含一个名为zone.tab的文件。此文件主要用于显示可供用户选择的时区列表。它包括每个时区的参考点的纬度和经度坐标。这允许创建突出显示这些点的地图。例如,请参阅the moment-timezone home page上显示的交互式地图。
虽然使用此数据从纬度和经度坐标解析时区可能很诱人,但请考虑到这些是点,而不是边界。最好的做法是确定最近的点,但在许多情况下,这不是正确的点。
考虑以下示例:

这两个正方形代表不同的时区,其中每个正方形中的黑点是参考位置,例如可以在zone.tab中找到的位置。蓝点表示我们尝试查找时区的位置。显然,这个位置在左边的橙色区域内,但是如果我们只是看最近的距离参考点,它将解析到右边的绿色区域。
发布于 2014-03-06 01:21:17
这个针对node.js https://github.com/mattbornski/tzwhere的解决方案怎么样?
和它的Python副本:https://github.com/pegler/pytzwhere
发布于 2015-09-07 19:24:15
我们在Teleport刚刚启动了opening up our API's,其中一个用例也公开了坐标的TZ信息。
例如,可以通过以下方式请求坐标的所有可用TZ信息:
curl -s https://api.teleport.org/api/locations/59.4372,24.7453/?embed=location:nearest-cities/location:nearest-city/city:timezone/tz:offsets-now | jq '._embedded."location:nearest-cities"[0]._embedded."location:nearest-city"._embedded."city:timezone"'这将返回以下内容
{
"_embedded": {
"tz:offsets-now": {
"_links": {
"self": {
"href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/?date=2015-09-07T11%3A20%3A09Z"
}
},
"base_offset_min": 120,
"dst_offset_min": 60,
"end_time": "2015-10-25T01:00:00Z",
"short_name": "EEST",
"total_offset_min": 180,
"transition_time": "2015-03-29T01:00:00Z"
}
},
"_links": {
"self": {
"href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/"
},
"tz:offsets": {
"href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/{?date}",
"templated": true
},
"tz:offsets-now": {
"href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/?date=2015-09-07T11%3A20%3A09Z"
}
},
"iana_name": "Europe/Tallinn"
}在本例中,我使用./jq进行JSON解析。
https://stackoverflow.com/questions/16086962
复制相似问题