问题描述
关于此时区有很多问题,我需要使用时间,纬度和经度来获取偏移量,例如+ 5.5,+ 6.0等,我想使用IANA数据库的zdump ,使用python脚本,不想使用pytz或时区查找器模块。只想解析时间,纬度和经度,然后获取带/不带DST的偏移量。我已经提取了tz2020a数据库。
解决方法
对不起,您无法提出要求,因为IANA时区数据库不包含时区的地理边界。
IANA时区数据库中唯一的位置数据是zone.tab和zone1970.tab中参考位置的坐标。但是,这没有告诉您有关区域的边界的任何信息。正如this answer末尾的图形所示,人们不能随便选择最近的城市。
正确的解决方案是使用提供geographic boundaries of time zones的库。对于Python,最好的选择是timezonefinder。
一旦确定了时区,则可以使用zdump对该时区获取原始偏移信息。但是,在确定要使用的偏移量或偏移量集方面仍然会有一些挑战。并非所有时区都像具有单个标准偏移量或标准偏移量+夏时制一样简单。许多人在其整个历史中都多次更改了标准偏移量-因此您仍然需要对“ now”(ish)进行一些引用。
pytz,dateutil或arrow之类的库通过公开可以为您正确解释数据的API,使这一部分变得更加容易。如果您不想为此使用库,则可以在即将发布的Python 3.9版本中使用PEP 615中的内置时区支持。