¿Cómo puedo obtener el desplazamiento UTC del nombre de la zona horaria en python?Obtener el desplazamiento UTC del nombre de la zona horaria en python
Por ejemplo: Tengo "Asia/Jerusalem" y quiero conseguir "0200"
¿Cómo puedo obtener el desplazamiento UTC del nombre de la zona horaria en python?Obtener el desplazamiento UTC del nombre de la zona horaria en python
Por ejemplo: Tengo "Asia/Jerusalem" y quiero conseguir "0200"
Debido a horario de verano (horario de verano), el resultado depende de la época del año:
import datetime, pytz
datetime.datetime.now(pytz.timezone('Asia/Jerusalem')).strftime('%z')
# returns '+0300' (because 'now' they have DST)
pytz.timezone('Asia/Jerusalem').localize(datetime.datetime(2011,1,1)).strftime('%z')
# returns '+0200' (because in January they didn't have DST)
¿Ha intentado utilizar el proyecto pytz y el utcoffset
method?
p. Ej.
>>> import datetime
>>> import pytz
>>> pacific_now = datetime.datetime.now(pytz.timezone('US/Pacific'))
>>> pacific_now.utcoffset().total_seconds()/60/60
-7.0
Tuve un problema similar al convertir a la marca de tiempo UTC del objeto python datetime. Mi fecha y hora era agnóstico de zona horaria (muy ingenuo) y como tal astimezone
no funcionaría.
Para mitigar el problema, hice que mi zona horaria de objeto datetime fuera consciente y luego utilicé la magia anterior.
import pytz
system_tz = pytz.timezone(constants.TIME_ZONE)
localized_time = system_tz.localize(time_of_meeting)
fmt = "%Y%m%dT%H%M%S" + 'Z'
return localized_time.astimezone(pytz.utc).strftime(fmt)
Aquí, constants.TIME_ZONE
es donde tuve la zona horaria por defecto de mis objetos persistido.
Espero que esto ayude a alguien que intenta convertir objetos python datetime a UTC. Una vez convertido, formatee como lo desee.
Espera ... ¿qué? Jon Skeet? Python! = C# !!! No me quejo, solo sorprendido. – Russ
BTW, el paquete de Ubuntu para pytz es python-tz. –
No me atrevo a rechazarlo, pero utcoffset es un método en objetos datetime, lo mejor que puedo decir, por lo que no proporciona esto desde un nombre de zona horaria. – Tom