Странное поведение pytz и datetime - возможная ошибка?

Я получаю следующий вывод. Это предполагаемое поведение pytz? Кстати, я живу в американском / восточном часовом поясе. Почему EST дает -04:56 в качестве смещения часового пояса?

import datetime
import pytz

a = datetime.datetime.now()
tz_est = pytz.timezone("US/Eastern")
a = a.replace(tzinfo=tz_est)
print("EST")
print(a)
print("\n")

b = datetime.datetime.now(pytz.timezone("US/Pacific"))
print("PST - version 1")
print(b)
print("\n")

tz_pst = pytz.timezone('US/Pacific')
c = tz_pst.normalize(a)
print("PST - version 2")
print(c)
print("\n")

EST 2017-03-16 22: 52: 27.616000-04:56

PST - версия 1 2017-03-16 19: 52: 27.617000-07: 00

PST - версия 2 2017-03-16 20:48:27.616000-07:00

2 ответа

import datetime
import pytz

a = datetime.datetime.now(pytz.timezone("US/Eastern"))
b = datetime.datetime.now()

pacific = pytz.timezone("US/Pacific")
c = pacific.localize(b)
d = pacific.normalize(a)

print(c)
print(d)

Используйте zoneinfo вместо pytz, чтобы получить ожидаемое поведение.

https://docs.python.org/3/library/zoneinfo.html

      from zoneinfo import ZoneInfo

dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
Другие вопросы по тегам