【问题标题】:Is there a database with location -> name of timezone as per IANA Time Zone Database [closed]根据 IANA 时区数据库,是否有位置 -> 时区名称的数据库 [关闭]
【发布时间】:2014-07-09 11:34:22
【问题描述】:

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

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

在 wikipedia 上搜索该位置会为我提供时间偏移 (UTC+n) 和时区缩写(EST 等),但对于知道在 tz 数据库中使用哪个条目都没有帮助。

例如: 华盛顿特区尽我所能使用“America/New_york”。
德克萨斯州达拉斯使用“美国/芝加哥”(除非我弄错了!)

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

在某个地方必须有一个数据库,或者一个资源,可以清楚地将地球上的每个位置(国家、州、省、城市等)与 tz 数据库中的特定条目联系起来。我在哪里可以找到它?

【问题讨论】:

    标签: database timezone iana


    【解决方案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 爱达荷州莫考?
    印第安纳州韦恩堡?
    当我们个人不知道上述位置时,很难从上面的列表中分辨出来。

    【讨论】:

      【解决方案2】:

      您可能会考虑的一种方法是查找相关位置的纬度和经度。

      然后您可以使用here 描述的方法查找这些坐标的适用时区。

      【讨论】:

        【解决方案3】:

        结合谷歌地图 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"
        }
        

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

        API 调用示例:

         https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331161200&key=YOUR_API_KEY
        

        这样返回 JSON

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

        【讨论】:

        猜你喜欢
        • 2011-07-27
        • 2015-06-07
        • 2013-01-28
        • 1970-01-01
        • 1970-01-01
        • 2016-02-13
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多