python - timezones - Conversión de hora y hora con pytz: comportamiento alucinante
timezone django (1)
Estoy tratando de convertir el objeto de datetime
y datetime
zona horaria a UTC y luego volver a su zona horaria original. Tengo un fragmento siguiente
t = datetime(
2013, 11, 22, hour=11, minute=0,
tzinfo=pytz.timezone(''Europe/Warsaw'')
)
ahora en ipython:
In [18]: t
Out[18]: datetime.datetime(
2013, 11, 22, 11, 0, tzinfo=<DstTzInfo ''Europe/Warsaw'' WMT+1:24:00 STD>
)
y ahora tratemos de hacer la conversión a UTC y viceversa. Espero tener la misma representación que:
In [19]: t.astimezone(pytz.utc).astimezone(pytz.timezone(''Europe/Warsaw''))
Out[19]: datetime.datetime(
2013, 11, 22, 10, 36, tzinfo=<DstTzInfo ''Europe/Warsaw'' CET+1:00:00 STD>
)
Sin embargo, vemos que Out[18]
y Out[19]
difieren. ¿Que esta pasando?
La documentación http://pytz.sourceforge.net/ indica "Desafortunadamente, el uso del argumento tzinfo de los constructores de fecha y hora estándar ''no funciona'' con pytz para muchas zonas horarias". El código:
t = datetime(
2013, 5, 11, hour=11, minute=0,
tzinfo=pytz.timezone(''Europe/Warsaw'')
)
no funciona de acuerdo con esto, en su lugar, debe utilizar el método de localización:
t = pytz.timezone(''Europe/Warsaw'').localize(
datetime(2013, 5, 11, hour=11, minute=0))