Web服务 – 当前的城市时区?

是否有某种networking服务(或任何其他方式)拉(美国)城市的当前时区设置。 对于那些不遵循夏令时的国家来说,当别人正在转换夏令时/冬令时的时候,基本上都会跳时区…我不喜欢创build自己的数据库,而这些数据库并不遵循夏令时。 有没有办法根据需要提取这些数据?

我需要这个数据库服务器(不适用于客户端工作站) – 存储在数据库中有城市,国家作为属性的实体。 我需要知道这些实体在任何时刻的当前时区。

earthtools.org提供一个免费的networking服务来从这里的城市获得时区:

http://www.earthtools.org/webservices.htm#timezone

你只要传递像这样的长/纬度值:(这是纽约)

http://www.earthtools.org/timezone-1.1/40.71417/-74.00639


编辑:

土工材料似乎已经closures了。 一个很好的select(这个问题在2008年就不存在了)是Google时区API。 要使用它,您必须先在您的账户上激活时区API 。 如果你停留在这些限制之下,这是免费的:

  • 每24小时2500个请求。
  • 每秒5个请求。

该文档可在Google Developers上find。

我们遇到了同样的问题,除了上面的重要build议外,Google似乎还有两个互补的API,一个来自地理编码(纬度/经度)数据的时区和地理编码API。

例如,要获得旧金山的时区和抵消:

1)将城市转换为地理编码位置:

http://maps.googleapis.com/maps/api/geocode/json?address=San%20Francisco,+CA&sensor=false

地理编码的位置在JSON返回数据中:

"location": { "lat": 37.77492950, "lng": -122.41941550 } 

2)将地理编码的位置转换为本地时区和偏移量(如果有):

https://maps.googleapis.com/maps/api/timezone/json?location=37.77492950,-122.41941550×tamp=1331161200&sensor=false

哪个返回当前时区信息:

 { "status": "OK", "dstOffset": 0.0, "rawOffset": -28800.0, "timeZoneId": "America/Los_Angeles", "timeZoneName": "Pacific Standard Time" } 

一个地区的时区可能因各种原因而改变。 因此,find一个权威的基于服务器的解决scheme而不是caching是个好主意。 欲了解更多信息,请参阅维基百科的时区文章 。

Geonames.org有一个很好的一套世界上的数据,可通过web服务或下载:

http://www.geonames.org/export/ws-overview.html

尤其是

http://www.geonames.org/export/web-services.html#timezone

Earthtool的时区信息不是最新的…例如,斯里兰卡当前的偏移量是GMT的+5.5,但是EarthTools显示的是+6,这是2005年之前的旧偏移量。

我build议GeoNames.org 。

WorldTimeServer.com似乎是一个全面的时区数据库,您可以购买各种格式的访问,包括Web组件。

没有关系,最近我只好自己研究同样的事情。

简单的离线库: APTimeZones

为了find您可以使用的位置的时区,例如Google Maps API的时区API。 不幸的是,这需要你查询一个远程服务,你受限于他们。

这里有一个名为APTimeZones (Git附件)的Alterplay库,它允许你从给定的位置提取NSTimeZone,而不需要连接到远程服务。 APTimeZones通过查询本地时区列表(包含在库中)工作。

如果有人碰到这个问题。

  • 您可以使用Google APIsearch地址。 这返回纬度/经度。 有了这些值,你可以find最接近的时区,例如PHP。

  • 或者你可以使用像timezoneapi.io(我在后面),这使您可以search地址/城市/国家的API。 它返回给定时区的地址,时区信息和当前date/时间。

https://timezoneapi.io/developers/address

我在这里find了一个免费的可下载数据库: http : //citytimezones.info/

[编辑] …但更准确的信息(包括来源)基于Olson数据库可以在这里find: http : //en.wikipedia.org/wiki/Tz_database

我知道这是回答,但我发布这个答案,因为人们可能仍然觉得它有用 – 选定的答案现在不成功工作。

谷歌有自己的服务,这是非常可靠和易于使用,并以JSON格式输出信息。 它甚至允许指定一个自定义时间,例如在02/02/2013在马耳他获得时区。

https://developers.google.com/maps/documentation/timezone/