Pregunta El extraño problema de la zona horaria con pytz


>>> import pytz
>>> pytz.timezone('Asia/Hong_Kong')
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>

¿Una compensación de siete horas y 37 minutos? Esto es un poco extraño, ¿alguien experimenta el mismo problema?

De hecho, estoy obteniendo un comportamiento diferente entre

import pytz
from datetime import datetime
hk = pytz.timezone('Asia/Hong_Kong')

dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
if dt1 > dt2:
   print "Why?"

32
2017-07-13 15:37


origen


Respuestas:


Las zonas horarias y las compensaciones cambian con los años. El nombre y el desplazamiento predeterminados de la zona que se entregan cuando pytz crea un objeto de zona horaria son los primeros disponibles para esa zona, y en ocasiones pueden parecer extraños. Cuando usas localize para adjuntar la zona a una fecha, se sustituyen el nombre de la zona y el desplazamiento correctos. Simplemente usando el datetime constructor para adjuntar la zona a la fecha no le permite ajustarse correctamente.


46
2017-07-13 16:15