Using datetime, latitude and longitude need of offset with/without DST using Zdump IANA

389 Views Asked by At

there are a lot of questions regarding this timezone, I am in need to get the offset such as +5.5, +6.0, etc., using the time, latitude, and longitude, I want to use the zdump of IANA databases, with the script of python, don't want to use the pytz or timezone finder modules. Just want to parse the time, lat and lon then get the offset with/without DST. I have extracted the tz2020a databases.

1

There are 1 best solutions below

0
On

Sorry, but what you ask is not possible because the IANA time zone database does not include geographic boundaries of the time zones.

The only location data in the IANA time zone database are the coordinates of the reference locations in zone.tab and zone1970.tab. However, this tells you nothing about the boundaries for the zone. One cannot just pick the closest city, as illustrated in the graphic towards the end of this answer.

The correct solution is to use a library that provides geographic boundaries of time zones. For Python, the best option is currently timezonefinder.

Once you have identified the time zone, then you could use zdump for that zone to get the raw offset information. However, you'll still have some challenges in figuring out which offset or sets of offsets to use. Not all time zones are as simple as having a single standard offset or a standard offset + daylight saving time. Many have changed standard offsets multiple times throughout their history - so you'll still need some reference to "now" (ish).

Libraries like pytz, dateutil, or arrow make that part much easier, by exposing APIs that interpret the data correctly for you. If you don't want to use a library for this - you can use the built-in time zone support from PEP 615 in the upcoming Python 3.9 release.