Pytz library timezone conversion issue
I am trying to work with django and converting timezones between UTC and my timezone ("America/Winnipeg")
, but I keep running into issues and I think there might be a bug. Here is my code:
#UTC to "America/Winnipeg"
utc1 = datetime.datetime(2025,4,8,12,00)
utc1 = utc1.replace(tzinfo = pytz.utc)
utc2wpg = utc1.astimezone(pytz.timezone("America/Winnipeg"))
wpgb2utc = utc2wpg.astimezone(pytz.utc)
print(f"UTC Time: {utc1}")
print(f"UTC to Winnipeg Time: {utc2wpg}")
print(f"Winnipeg back to UTC Time: {wpgb2utc}")
#America/Winnipeg to UTC
wpg1 = datetime.datetime(2025,4,8,7,0)
wpg1 = wpg1.replace(tzinfo = pytz.timezone("America/Winnipeg"))
wpg2utc = wpg1.astimezone(pytz.utc)
utcb2wpg = wpg2utc.astimezone(pytz.timezone("America/Winnipeg"))
print(f"Winnipeg Time: {wpg1}")
print(f"Winnipeg to UTC Time: {wpg2utc}")
print(f"UTC back to Winnipeg Time: {utcb2wpg}")
When you run the UTC to "America/Winnipeg" block, you get the output:
UTC Time: 2025-04-08 12:00:00+00:00
UTC to Winnipeg Time: 2025-04-08 07:00:00-05:00
Winnipeg back to UTC Time: 2025-04-08 12:00:00+00:00
But when you run the exact same timezone converting back from Winnipeg to UTC, you get this output:
Winnipeg Time: 2025-04-08 07:00:00-06:29
Winnipeg to UTC Time: 2025-04-08 13:29:00+00:00
UTC back to Winnipeg Time: 2025-04-08 08:29:00-05:00
There is clearly a discrepancy in the timezone conversions. Is there an issue with my code or is there an issue with the pytz library's conversion. Are you having the same output?
I am using Python 3.13