Saltar al contenido

Python: datetime tzinfo documentación de nombres de zona horaria

Solución:

La biblioteca estándar no define ninguna zona horaria, al menos no bien (el ejemplo de juguete que se proporciona en la documentación no maneja problemas sutiles como los que se mencionan aquí). Para zonas horarias predefinidas, use el módulo pytz de terceros.

import pytz
import datetime as DT

eastern = pytz.timezone('US/Eastern')
utc = pytz.utc
test="2013-03-27 23:05"

Esta es una fecha y hora “ingenua”:

test2 = DT.datetime.strptime(test, '%Y-%m-%d %H:%M')   
print(test2)
# 2013-03-27 23:05:00

Esto crea una fecha y hora consciente de la zona horaria al interpretar test2 como si estuviera en la zona horaria EST:

print(eastern.localize(test2))
# 2013-03-27 23:05:00-04:00

Esto crea una fecha y hora consciente de la zona horaria al interpretar test2 como si estuviera en la zona horaria UTC:

print(utc.localize(test2))
# 2013-03-27 23:05:00+00:00

Alternativamente, puede convertir una fecha y hora con reconocimiento de zona horaria a otra zona horaria utilizando el astimezone método:

test2_eastern = eastern.localize(test2)
print(test2_eastern.astimezone(utc))
# 2013-03-28 03:05:00+00:00

desde el lanzamiento de Python 3.9, la lib estándar lo hace definir zonas horarias, y puede obtenerlas a través de

import zoneinfo
print(zoneinfo.available_timezones())

# {'America/Belem', 'Asia/Tel_Aviv', 'Australia/North', 'Asia/Omsk', 
#  'Europe/Isle_of_Man', 'America/New_York', 'Europe/Nicosia', 
#  'Pacific/Funafuti', 'America/Ensenada', 'Europe/Mariehamn', 
#  'America/Maceio', 'America/Guatemala', 'America/Guadeloupe', ...
  • docs – zoneinfo
  • ver también Lista de zonas horarias de la base de datos tz
  • … y asegúrese de tener tzdata instalado y actualizado
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *