Convertir UTC a CST en Python
-
Utilice el módulo
dateutil.tz
para convertir la fecha y la hora de UTC a CST en Python -
Utilice el módulo
pytz
para convertir la fecha y la hora de UTC a CST en Python -
Utilice el módulo
zoneinfo
para convertir la fecha y la hora de UTC a CST en Python
Python almacena la fecha y la hora de una manera muy sofisticada. Tiene un tipo de datos específico para almacenar este tipo de datos. Además, Python también proporciona un módulo datetime
que ofrece varias clases para manipular la fecha y la hora.
La conversión a diferentes zonas horarias es una parte esencial de la manipulación de la fecha y la hora. En este artículo, discutiremos dos de esas zonas horarias, a saber, UTC y CST, y las diferentes formas disponibles para convertir la primera en la segunda.
El módulo datetime
es una necesidad y deberá importarse y utilizarse en todos los métodos mencionados en el artículo siguiente.
Utilice el módulo dateutil.tz
para convertir la fecha y la hora de UTC a CST en Python
El módulo dateutil
potencia el módulo estándar datetime
proporcionando algunas extensiones importantes. El módulo dateutil.tz
proporciona implementaciones de zona horaria que subclasifican el tipo abstracto datetime.tzinfo
.
Aquí, usaremos frecuentemente la función tz.gettz()
, que esencialmente recupera un objeto de la zona horaria de la cadena dada pasada como su argumento.
El siguiente código usa el módulo dateutil.tz
para convertir la fecha y la hora de UTC a CST en Python.
import datetime
from dateutil import tz
from_zone = tz.gettz("UTC")
to_zone = tz.gettz("America/Chicago")
json_data = {"time": "2021-10-08T08:17:42Z"}
utc = datetime.datetime.strptime(json_data["time"], "%Y-%m-%dT%H:%M:%SZ")
utc = utc.replace(tzinfo=from_zone)
cst = utc.astimezone(to_zone)
print(utc)
print(cst)
El código anterior proporciona el siguiente Resultado:
2021-10-08 08:17:42+00:00
2021-10-08 03:17:42-05:00
Utilice el módulo pytz
para convertir la fecha y la hora de UTC a CST en Python
El módulo pytz
admite una gran mayoría de zonas horarias, lo que lo convierte en el módulo perfecto para proporcionar funcionalidades de conversión de fecha y hora y proporcionar funciones que permiten cálculos simples de zona horaria en el software de aplicación Python del programador.
Además, el módulo pytz
permite la creación de instancias o objetos datetime
inteligentes que son conscientes de su zona horaria. El módulo pytz
debe instalarse manualmente y se puede hacer usando el comando pip
.
El siguiente código utiliza el módulo pytz
para convertir la fecha y la hora de UTC a CST en Python
from datetime import datetime, timezone
import pytz
fmt = "%Y-%m-%d %H:%M:%S %Z%z"
e = pytz.timezone("US/Central")
time_from_utc = datetime.fromtimestamp(1607020200, tz=timezone.utc)
time_from = time_from_utc.astimezone(e)
time_from.strftime(fmt)
time_to_utc = datetime.fromtimestamp(1609785000, tz=timezone.utc)
time_to = time_to_utc.astimezone(tz=pytz.timezone("US/Central"))
print(time_to_utc)
print(time_to)
El código anterior proporciona el siguiente Resultado:
2021-01-04 18:30:10+00:00
2021-01-04 12:30:10-06:00
Aunque los módulos dateutil.tz
y pytz
se utilizan para implementar cosas similares en Python, tienen algunas diferencias.
- El módulo
pytz
soporta casi todas las zonas horarias, significativamente más de lo que ofrece el módulodateutil.tz
. - La biblioteca del módulo
pytz
está significativamente más optimizada. - El módulo
pytz
es históricamente más rápido quedateutil.tz
, pero la brecha se ha ido reduciendo en las últimas actualizaciones. - Se recomienda el uso del módulo
dateutil.tz
en las versiones anteriores de Python cuando el módulopytz
no era lo suficientemente estable.
Utilice el módulo zoneinfo
para convertir la fecha y la hora de UTC a CST en Python
Con la introducción de Python 3.9 vino el módulo zoneinfo
, que eliminó la necesidad de instalar otras bibliotecas de terceros para administrar las zonas horarias. El módulo zoneinfo
se ocupa de todo en sí.
El módulo zoneinfo
se utiliza para proporcionar una implementación sólida de la zona horaria que, como se especifica en PEP 615
, puede admitir la base de datos de la zona horaria IANA
.
El siguiente código utiliza el módulo zoneinfo
para convertir la fecha y la hora de UTC a CST en Python.
# >= Python 3.9
from datetime import datetime
from zoneinfo import ZoneInfo
naive_datetime = datetime(2021, 10, 8, 12, 0, 0)
user_tz_preference = ZoneInfo("US/Central")
user_datetime = naive_datetime.replace(tzinfo=user_tz_preference)
user_datetime = datetime(2011, 10, 26, 12, tzinfo=ZoneInfo("US/Central"))
utc_datetime = user_datetime.astimezone(ZoneInfo("UTC"))
print(user_datetime.isoformat())
print(utc_datetime.isoformat())
El código anterior proporciona el siguiente Resultado:
# 2021-10-08T12:00:00-06:00
# 2021-10-08T19:00:00+00:00
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn