As far as I understood ZoneInfo
in python 3.9 fixes the issue of "The year of 2038" problem with DST time issue. But I can see that the timedelta
is wrong. Below it should have been 2 hours, not 3. What is wrong?
from zoneinfo import ZoneInfo
import datetime
dt = datetime.datetime(2038,3,14,0,0, tzinfo = ZoneInfo(r'America/New_York'))
print(dt)
dt2 = datetime.datetime(2038,3,14,3,0, tzinfo = ZoneInfo(r'America/New_York'))
print(dt2-dt)
The above is correct because it is made aware of the DST, aka in the DST aware context. For example, if you add 3 hours to 2038-03-14 00:00:00-05:00 like the code below, you get a consistent result:
However, your thinking of 2 hours time difference is correct in the NO-DST-AWARE context, as shown below: