timezone - 是否有信誉良好的来源提供 UN/LOCODE 到奥尔森时区的映射?

标签 timezone mapping iana cldr

我一直在研究CLDRIANA为了找到 UN/LOCODE 到奥尔森时区的集中映射。

理想情况下,我想拥有例如:

+--------------+--------------------+
|un_locode     |timezone            |
+--------------+--------------------+
|USLAX         | America/Los_Angeles|
+--------------+--------------------+

对于每个 UN/LOCODE。

我的核心技能是否让我无法理解如何使用这些资源来实现我的目标? (如果是这样,请帮助我指向允许我自动提供这些映射的脚本)。

或者,这些来源是否没有我正在寻找的数据相关性? (如果是这样,请让我知道您是否有可靠的来源)。

最佳答案

我们面临完全相同的问题,因此必须提供解决方案。

该解决方案涉及将 UN/LOCODES 数据库与地理位置/时区数据库链接。
Matt Johnson 的回答和随附的评论对这种方法有一些警告。

即:

  • UN/LOCODE 坐标数据库不完整[1],有时数据不准确[2]
  • 在某些情况下,由于时区的政治性质,UN/LOCODE 和时区之间的一对一映射是不可能的。
  • 上述两点因自由坐标到时区数据库的不准确性而恶化。获得一个包含领海的数据集会很有帮助,这样港口时区就可以正确地链接到它们所属的国家。

  • 以下存储库https://github.com/Portchain/un_locodes_sql包含提取和链接数据的代码。它输出一个可以导入 PostgreSQL 数据库的 SQL 文件。
    地理位置/时区数据基于 geo-tz[3] 模块,该模块似乎从 timezone-boundary-builder[4] 获取数据。

    同样,我们的存储库提供的列表当然是不完整和不准确的。如果您发现数据中有任何错误,请打开一个 github issue,让我们制作一个准确的、开源的 UN/LOCODE、坐标和时区信息列表。
  • [1] 例如,美国洛杉矶和旧金山 (USLAX & USSFO) 都缺少 UN/LOCODE 数据库中的坐标。
  • [2] Abu al Bukhoosh (AEABU) 石油港口位于阿布扎比 (UAE)。它在 UN/LOCODE 数据库中的坐标将港口定位在波斯湾中部 (https://www.port-directory.com/ports/abu_al_bukhoosh/)。解决后,这会导致时区未知。
  • [3] https://github.com/evansiroky/node-geo-tz
  • [4] https://github.com/evansiroky/timezone-boundary-builder
  • 关于timezone - 是否有信誉良好的来源提供 UN/LOCODE 到奥尔森时区的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638840/

    相关文章:

    javascript - getUTCDate()函数在不同时区的问题

    fonts - 字体文件的正确 MIME 类型是什么?

    postgresql - 如何将 tz 数据 (IANA) 导入 Postgres 服务器

    entity-framework - 找不到字段的映射

    java - 读取 jackson 中的嵌入式对象

    java - J2ME 中的正确时区支持

    c# - 当前时间的时区缩写?

    python - 在 Pandas 中,为什么 tz_convert 将使用的时区从 EST 更改为 LMT?

    java - 双向多对多 JPA