是否存在具有位置的数据库 - >根据IANA时区数据库的时区名称

aug*_*tin 5 database timezone iana

在我的脚本(PHP)中,我对数据库中的每个位置使用tz数据库标签:http: //en.wikipedia.org/wiki/Tz_database

我正在进入来自世界各地的一系列地方(国家,省,州,市等).对于每一个地方,我发现很难知道IANA时区数据库中的哪个标签可供使用.

在维基百科上搜索位置给出了时间偏移量(UTC + n)和时区缩写(EST等),但既不能帮助知道在tz数据库中使用哪个条目.

例如:华盛顿特区尽可能地使用"America/New_york".
德克萨斯州达拉斯使用'America/Chicago'(除非我弄错了!)

有一个非洲小国,其首都和最大城市都不在tz数据库中.使用哪个tz条目?

某处必须有一个数据库,或者一个资源可以清楚地将地球上的每个位置(国家,州,省,市等)链接到tz数据库中的特定条目.我在哪里可以找到它?

Meh*_*hdi 5

结合谷歌地图 API 工作正常,例如使用下面的 API 从地址获取位置。地址是“美国加利福尼亚州山景城”

https://maps.googleapis.com/maps/api/geocode/json?address=Mountain+View,+CA,+US&key=YOUR_API_KEY

这个 URL 返回 JSON 类似这样的东西

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Mountain View, CA 94043, USA",
         "geometry" : {
            "location" : {
               "lat" : 37.4224764,
               "lng" : -122.0842499
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.4238253802915,
                  "lng" : -122.0829009197085
               },
               "southwest" : {
                  "lat" : 37.4211274197085,
                  "lng" : -122.0855988802915
               }
            }
         },
         "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}
Run Code Online (Sandbox Code Playgroud)

您可以从 JSON 中提取位置并将位置调用到时区 API。

API调用示例:

 https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331161200&key=YOUR_API_KEY
Run Code Online (Sandbox Code Playgroud)

像这样返回 JSON

{
   "dstOffset" : 0,
   "rawOffset" : -28800,
   "status" : "OK",
   "timeZoneId" : "America/Los_Angeles",
   "timeZoneName" : "Pacific Standard Time"
}
Run Code Online (Sandbox Code Playgroud)

  • 我用这个制作了一个应用程序,谢谢:https://gist.github.com/mnpenner/9996ac32a394caffd859610b39d76160 (2认同)

aug*_*tin 1

到目前为止我发现的最好的是: http:
//twiki.org/cgi-bin/xtra/tzdatepick.html 但它只有城市。

例如,它列出了巴黎,但没有列出法国。如果整个国家/地区包含在单个时区中(例如法国的任何城市都将列在欧洲/巴黎下),那么我想知道。

爱达荷州(分为两个区域)和爱达荷州莫斯科都没有列表。

我在美国使用以下来源: http: //en.wikipedia.org/wiki/List_of_U.S._states_by_time_zone ,但任何州和城市都需要大量猜测。

这个列表几乎不可用,但迄今为止我得到的最好的列表:
http://en.wikipedia.org/wiki/List_of_tz_database_time_zones Mocow, Idaho?
印第安纳州韦恩堡?
当我们个人不知道上述位置时,很难从上面的列表中看出。