При конвертации даты и использование timezone получаю неверный пояс. datetime

На сервере время -3 по мск, мне нужно чтобы при конвертации времени, оно было московское, сейчас в ручную делаю offset, можно ли использовать для этого datetime timezone, но вот он выдает мне не верный часовой пояс при конвертации. Т.е даже не так, при datetime.now() часовой пояс верный, а вот при конвертации нет

>>> tm = datetime.datetime.strptime('29.09.2022', '%d.%m.%Y').replace(tzinfo=pytz.timezone("Europe/Moscow"))
>>> tm.utcoffset()
datetime.timedelta(seconds=9000)
>>> tm = datetime.datetime.now(pytz.timezone("Europe/Moscow"))
>>> tm.utcoffset()
datetime.timedelta(seconds=10800)

Ответы (1 шт):

Автор решения: strawdog

Попробуйте провести локализацию времени, как рекомендуют разработчики pytz

ваш код:

tm = datetime.datetime.strptime('29.09.2022', '%d.%m.%Y').replace(tzinfo=pytz.timezone("Europe/Moscow"))
print(tm.utcoffset())

2:30:00

с локализацией:

tm = datetime.datetime.strptime('29.09.2022', '%d.%m.%Y').astimezone(pytz.timezone("Europe/Moscow"))
print(tm.utcoffset())

3:00:00

→ Ссылка