несогласованность при переключении между часовыми поясами в питоне

У меня есть объект datetime, созданный так:

tm = datetime.datetime.strptime('2010 Aug 04 14:15:16', '%Y %b %d %H:%M:%S')
>>> tm
datetime.datetime(2010, 8, 4, 14, 15, 16)

Затем я устанавливаю часовой пояс так:

tm.replace(tzinfo=pytz.timezone('UTC'))
>>> tm
datetime.datetime(2010, 8, 4, 14, 15, 16, tzinfo=<UTC>)

В конце концов, я изменяю часовой пояс на США / Тихий океан, например:

>>> tm = tm.astimezone(pytz.timezone('US/Pacific'))
>>> tm
datetime.datetime(2010, 8, 4, 7, 15, 16, tzinfo=<DstTzInfo 'US/Pacific' PDT-1 day, 17:00:00 DST>)

Это правильно. Но если бы я пошел в другом направлении:

>>> tm = tm.replace(tzinfo =pytz.timezone('US/Pacific'))
>>> tm
datetime.datetime(2010, 8, 4, 14, 15, 16, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)

Как видите, использование replace () с часовым поясом PST неверно предполагает, что это не летнее время. Поэтому, когда я конвертирую в UTC, он добавляет 8 часов вместо 7.

Почему он это делает и как мне это изменить, чтобы он делал то, что я хочу (правильно понимать DST или нет)?

Ответы на вопрос(1)

Ваш ответ на вопрос