【问题标题】:Using datetime, latitude and longitude need of offset with/without DST using Zdump IANA使用 Zdump IANA 使用日期时间、纬度和经度需要偏移量(带/不带 DST)
【发布时间】:2020-12-27 20:18:24
【问题描述】:

关于这个时区有很多问题,我需要使用时间,纬度和经度来获取偏移量例如+5.5,+6.0等,我想使用IANA数据库的zdump ,使用 python 的脚本,不想使用 pytz 或 timezone finder 模块。只想解析时间,纬度和经度,然后获取带/不带 DST 的偏移量。我已经提取了 tz2020a 数据库。

【问题讨论】:

    标签: python timezone iana


    【解决方案1】:

    抱歉,由于 IANA 时区数据库不包括时区的地理边界,因此您的问题是不可能的。

    IANA 时区数据库中唯一的位置数据是zone.tabzone1970.tab 中参考位置的坐标。但是,这并没有告诉您该区域的边界。不能只选择最近的城市,如this answer 末尾的图表所示。

    正确的解决方案是使用提供geographic boundaries of time zones 的库。对于 Python,目前最好的选择是timezonefinder

    一旦您确定了时区,您就可以使用该时区的 zdump 来获取原始偏移信息。但是,在确定要使用的偏移量或偏移量集时,您仍然会遇到一些挑战。并非所有时区都像具有单个标准偏移或标准偏移 + 夏令时一样简单。许多人在其历史上多次更改标准偏移量 - 所以您仍然需要参考“现在”(ish)。

    pytzdateutilarrow 等库通过公开为您正确解释数据的 API 使该部分变得更加容易。如果您不想为此使用库 - 您可以在即将发布的 Python 3.9 版本中使用来自 PEP 615 的内置时区支持。

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 2015-02-14
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多