当前位置:  开发笔记 > 编程语言 > 正文

网络服务 - 城市的当前时区?

如何解决《网络服务-城市的当前时区?》经验,为你挑选了5个好方法。

是否有某种Web服务(或任何其他方式)为(美国)城市提取当前时区设置.对于不遵循夏令时的国家/地区,当其他人都在切换夏季/冬季时,基本上跳跃时区...我不想创建自己的数据库中没有遵循夏令时的地方.有没有办法按需提取这些数据?

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



1> 小智..:

我们遇到了同样的问题,除了上面的好建议外,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"
}

区域的时区可能因各种原因而发生变化.因此,最好找到基于服务器的权威解决方案,而不是缓存.有关更多信息,请参阅Wikipedia的时区文章.


请注意,您可以将非英语城市名称传递给Google地理编码.

2> Espo..:

earthtools.org提供免费的网络服务,以便从这个城市获取时区:

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

你只需传入这样的长/纬度值:(这是纽约的)

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


编辑:

似乎地球工具已被关闭.一个很好的替代方案(2008年这个问题得到解答时不存在)是Google时区API.要使用它,您必须先激活帐户中的时区API.如果您保持低于这些限制,它是免费的:

每24小时2500次请求.

每秒5个请求.

该文档可在Google Developers上找到.


如果我们不知道城市的纬度/经度信息怎么办?
截至2015-09-09,它不起作用.我的应用程序有危险.多么不负责任!! 我知道这是免费的,但他们怎么能这样关闭呢.

3> Eric..:

Geonames.org提供了一系列精彩的世界数据,可通过网络服务或下载获得:

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

特别是

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

.



4> megazoid..:

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

我建议GeoNames.org.



5> TheoJones..:

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

没有联系,最近我必须自己研究同样的事情.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有