当前位置:  开发笔记 > 开发工具 > 正文

我需要一个城市到时区的映射列表 - 获得它的最佳方式?

如何解决《我需要一个城市到时区的映射列表-获得它的最佳方式?》经验,为你挑选了1个好方法。

我有一份城市,州/省和国家列表,我需要轻松找到各自的时区.具体来说,我需要知道他们映射到哪个Windows TimeZone.到目前为止,这是一个艰难的过程,因为没有简单的方法可以将城市传递给某个东西并获得时区(时区是一个偏移量,时区是否支持夏令时).

目前的流程是使用http://www.batchgeocode.com获取城市的纬度/经度(真正称为雅虎服务),然后拨打http://www.EarthTools.org获取时区信函,映射到偏移量.问题是雅虎服务有时会返回不良的经度/纬度,而earthtools.org对DST信息知之甚少,因此映射到正确的TimeZone Id是一个繁琐的手动过程.

我不能成为第一个做到这一点的人 - 有没有人知道更好的方法,或者有哪些列表有我需要的信息?

谢谢.



1> Jason S..:

有趣的问题!这些其他三个SO帖子(41504,55901和237023)提到了几个线索.有Olson数据库(请参阅维基百科条目中的描述),但它看起来更算法/程序化(例如,如果您知道一个县名,那么对于印第安纳州的某些县有一个规则).

我试着看看EarthTools,但它没有成为St.Pierre/Miquelon,这是一个很好的测试案例(-3:00而不是附近纽芬兰的-3:30,这是EarthTools所说的).

一些有前途的选择:worldtimeengine.com有一个免费的交互式版本和一个看起来很便宜的API(每英镑5000个查询),但API只包括lat,long查询作为输入(不是位置作为输入,这是交互式的东西)版本有).

最佳领先:我看看geonames.org,看起来它有一个很好的丰富的API,你可以使用,他们有一个免费(慢)版本和商业版本,以获得更好的性能.

PS这里有一些很好的测试案例(从worldtimezone.com和维基百科的时区的列表中,时区的地图也说明了):

加拉加斯,委内瑞拉(-4:30)

甘德,纽芬兰(-3:30)

伊朗德黑兰(+3:30)

阿富汗喀布尔(+4:30)

尼泊尔加德满都(+5:45)

仰光,缅甸(+6:30)

查塔姆群岛,新西兰(+12:45)

复活节岛(-6)

圣皮埃尔和密克隆(-3)

斯坦利,福克兰群岛(-4)

印第安纳州埃文斯维尔(-6 =中部)

安大略省,俄勒冈州(-7 =山)


geonames.org提供所有已知城市及其Olson时区的数据转储(按国家/地区).放下最好的方法来做到这一点.http://download.geonames.org/export/dump/
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有