inconsistência ao alternar entre fusos horários em python

Eu tenho um objeto datetime criado assim:

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)

Em seguida, defino o fuso horário assim:

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

Eventualmente, altero o fuso horário para EUA / Pacífico desta maneira:

>>> 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>)

Isto está correto. Mas se eu fosse na outra direção:

>>> 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>)

Como você pode ver, o uso de replace () com o fuso horário PST pressupõe incorretamente que não é o horário de verão. Portanto, quando faço a conversão para UTC, ele adiciona 8 horas em vez de 7.

Por que está fazendo isso e como faço para alterá-lo para que ele faça o que quero (realize corretamente o horário de verão ou não)?

questionAnswers(1)

yourAnswerToTheQuestion