example - El objeto datetime de Python muestra un desplazamiento de zona horaria incorrecto
timedelta python example (1)
Intento crear un objeto datetime en python usando datetime y pytz, el desplazamiento que se muestra es incorrecto.
import datetime
from pytz import timezone
start = datetime.datetime(2011, 6, 20, 0, 0, 0, 0, timezone(''Asia/Kolkata''))
print start
La salida mostrada es
datetime.datetime(2011, 6, 20, 0, 0, tzinfo=<DstTzInfo ''Asia/Kolkata'' HMT+5:53:00 STD>)
Tenga en cuenta que ''Asia / Calcuta'' es IST que es GMT + 5: 30 y no HMT + 5: 53. Esta es una zona horaria estándar de Linux, ¿por qué me equivoco y cómo lo resuelvo?
Consulte: http://bytes.com/topic/python/answers/676275-pytz-giving-incorrect-offset-timezone
En los comentarios, alguien propone usar tzinfo.localize()
lugar del constructor de datetime
, que hace el truco.
>>> tz = timezone(''Asia/Kolkata'')
>>> dt = tz.localize(datetime.datetime(2011, 6, 20, 0, 0, 0, 0))
>>> dt
datetime.datetime(2011, 6, 20, 0, 0, tzinfo=<DstTzInfo ''Asia/Kolkata'' IST+5:30:00 STD>)
ACTUALIZACIÓN : En realidad, el pytz.sourceforge.net establece que siempre debe usar localize
o astimezone
lugar de pasar un objeto de zona horaria a datetime.datetime
.