0

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

4

1 回答 1

1

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

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

正确的解决方案是使用提供时区地理边界的库。对于 Python,目前最好的选择是timezonefinder

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

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

于 2020-09-09T18:34:06.643 回答