Web service - current time zone for a city?
是否有某种类型(或任何其他方式)的Web服务来获取(美国)城市的当前时区设置。对于不遵守夏令时和基本上跳过时区的部分国家,当其他人都在切换夏令时/冬令时…我不想创建自己的数据库,来记录那些不遵循DST的地方。有没有办法按需提取这些数据?
我需要数据库服务器(而不是客户机工作站)使用它——数据库中存储的实体具有城市、状态为属性。我需要随时知道这些实体的当前时区。
我们遇到了同样的问题,除了上面的建议外,Google似乎还有两个互补的API,一个用于地理编码(纬度/经度)数据的时区,另一个用于地理编码API。
例如,获取旧金山的时区和偏移量:
1)将城市转换为地理编码位置:http://maps.googleapis.com/maps/api/geocode/json?地址=旧金山,+CA&SENSOR=FALSE
地理编码位置在JSON返回数据中:
1 2 3 4 | "location": { "lat": 37.77492950, "lng": -122.41941550 } |
2)将地理编码位置转换为本地时区并偏移(如果有):
https://maps.googleapis.com/maps/api/timezone/json?位置=37.77492950,-122.41941550×tamp=1331161200&sensor=false
返回当前时区信息:
1 2 3 4 5 6 7 | { "status":"OK", "dstOffset": 0.0, "rawOffset": -28800.0, "timeZoneId":"America/Los_Angeles", "timeZoneName":"Pacific Standard Time" } |
一个地区的时区可能因各种原因而改变。因此,最好找到一个基于服务器的权威解决方案,而不是缓存。有关更多信息,请参阅维基百科的时区文章。
earthtools.org提供免费的网络服务,从这里的城市获取时区:
http://www.earthtools.org/webservices.htm时区
您只需按如下方式传递long/lat值:(这是给纽约的)
http://www.earthtools.org/timezone-1.1/40.71417/-74.00639
编辑:
似乎地球工具已经关闭了。谷歌时区API是一个不错的选择(在2008年这个问题被回答时还不存在)。要使用它,您必须首先激活您帐户上的时区API。如果您低于这些限制,它是免费的:
- 每24小时2500次请求。
- 每秒5个请求。
该文档可在谷歌开发人员那里获得。
geonames.org有一套很好的世界数据,可通过webservice或下载获得:
http://www.geonames.org/export/ws-overview.html网站
特别地
http://www.geonames.org/export/web services.html时区
.
地球工具的时区信息不是最新的…例如,斯里兰卡当前的偏移距格林尼治标准时间为+5.5,但EarthTools显示为+6,这是2005年之前的旧偏移距。
我建议geonames.org。
worldtimeserver.com有一个似乎是全面的时区数据库,您可以购买多种格式的访问权限,包括用于Web的.NET组件。
没有联系,只是最近我自己研究了同样的事情。
万一有人碰到这个问题。
你可以使用google api来搜索地址。返回纬度/逻辑。有了这些值,您可以使用PHP等工具找到最近的时区。
或者您可以使用类似于timezoneapi.io的API(我在后面),它允许您搜索地址/城市/国家。它返回该给定时区的地址、时区信息和当前日期/时间。
https://timezoneapi.io/developers/address/开发人员/地址
简单脱机库:apTimeZones
为了找到某个位置的时区,您可以使用谷歌地图API的时区API。不幸的是,这要求您查询远程服务,并且您受到它们的限制。
这里有一个名为apTimeZones(git已连接)的库romalterplay,它允许您从给定位置提取nsTimeZone,而无需连接到远程服务。apTimeZones通过查询本地时区列表(包含在库中)工作。
谷歌,每天2500个免费请求https://developers.google.com/maps/documentation/timezone网站/
我知道这是答案,但我发布这个答案,因为人们可能仍然认为它是有用的-所选的答案目前不起作用。
谷歌有自己的服务,这是非常可靠和易于使用,并输出信息的JSON格式。它甚至允许指定自定义时间,例如获取2013年2月2日在马耳他的时区。
https://developers.google.com/maps/documentation/timezone网站/
我在这里找到了一个免费的可下载数据库:http://citytimezones.info/
[编辑]…但是,基于olson数据库的更准确的信息(包括来源)可以在这里找到:http://en.wikipedia.org/wiki/tz_database