Convertir UTC a CST en Python
- 
          
            Utilice el módulo dateutil.tzpara convertir la fecha y la hora de UTC a CST en Python
- 
          
            Utilice el módulo pytzpara convertir la fecha y la hora de UTC a CST en Python
- 
          
            Utilice el módulo zoneinfopara 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 pytzsoporta casi todas las zonas horarias, significativamente más de lo que ofrece el módulodateutil.tz.
- La biblioteca del módulo pytzestá significativamente más optimizada.
- El módulo pytzes 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.tzen las versiones anteriores de Python cuando el módulopytzno 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