Convertir UTC en CST en Python
-
Utilisez le module
dateutil.tz
pour convertir la date et l’heure d’UTC en CST en Python -
Utilisez le module
pytz
pour convertir la date et l’heure d’UTC en CST en Python -
Utilisez le module
zoneinfo
pour convertir la date et l’heure d’UTC en CST en Python
Python stocke la date et l’heure d’une manière très sophistiquée. Il a un type de données spécifiquement pour stocker ce type de données. De plus, Python fournit également un module datetime
qui propose plusieurs classes pour manipuler la date et l’heure.
La conversion en différents fuseaux horaires est une partie essentielle de la manipulation de la date et de l’heure. Dans cet article, nous discuterons de deux de ces fuseaux horaires, à savoir UTC et CST, et des différentes façons disponibles pour convertir le premier en ce dernier.
Le module datetime
est une nécessité et devra être importé et utilisé dans toutes les méthodes mentionnées dans l’article ci-dessous.
Utilisez le module dateutil.tz
pour convertir la date et l’heure d’UTC en CST en Python
Le module dateutil
alimente le module datetime
standard en fournissant des extensions importantes. Le module dateutil.tz
fournit des implémentations de fuseau horaire qui sous-classent le type abstrait datetime.tzinfo
.
Ici, nous utiliserons fréquemment la fonction tz.gettz()
, qui récupère essentiellement un objet du fuseau horaire à partir de la chaîne donnée passée en argument.
Le code suivant utilise le module dateutil.tz
pour convertir la date et l’heure de UTC en 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)
Le code ci-dessus fournit la sortie suivante :
2021-10-08 08:17:42+00:00
2021-10-08 03:17:42-05:00
Utilisez le module pytz
pour convertir la date et l’heure d’UTC en CST en Python
Le module pytz
prend en charge une grande majorité de fuseaux horaires, ce qui en fait le module parfait pour fournir des fonctionnalités de conversion de date et d’heure et fournir des fonctions qui permettent des calculs simples de fuseau horaire dans le logiciel d’application python du programmeur.
De plus, le module pytz
permet la création d’objets ou d’instances datetime
intelligents qui connaissent leur fuseau horaire. Le module pytz
doit être installé manuellement et peut être fait en utilisant la commande pip
.
Le code suivant utilise le module pytz
pour convertir la date et l’heure de UTC en 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)
Le code ci-dessus fournit la sortie suivante :
2021-01-04 18:30:10+00:00
2021-01-04 12:30:10-06:00
Bien que les modules dateutil.tz
et pytz
soient tous deux utilisés pour implémenter des choses similaires en Python, ils présentent quelques différences.
- Le module
pytz
supporte quasiment tous les fuseaux horaires, nettement plus que ce que propose le moduledateutil.tz
. - La librairie du module
pytz
est nettement plus optimisée. - Le module
pytz
est historiquement plus rapide quedateutil.tz
, mais l’écart s’est réduit au cours des deux dernières mises à jour. - L’utilisation du module
dateutil.tz
est recommandée dans les versions antérieures de Python lorsque le modulepytz
n’était pas assez stable.
Utilisez le module zoneinfo
pour convertir la date et l’heure d’UTC en CST en Python
Avec l’introduction de Python 3.9 est venu le module zoneinfo
, qui a éliminé le besoin d’installer d’autres bibliothèques tierces pour gérer les fuseaux horaires. Le module zoneinfo
s’occupe de tout lui-même.
Le module zoneinfo
est utilisé pour fournir une implémentation de fuseau horaire fort qui, comme spécifié dans PEP 615
, peut prendre en charge la base de données de fuseau horaire IANA
.
Le code suivant utilise le module zoneinfo
pour convertir la date et l’heure de UTC en 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())
Le code ci-dessus fournit la sortie suivante :
# 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.
LinkedInArticle connexe - Python DateTime
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment obtenir l'heure actuelle en Python
- Obtenez le jour de la semaine en Python
- Comment convertir une chaîne de caractères en datetime en Python
- Obtenir la liste des fuseaux horaires à l'aide de Python
- Obtenir l'année à partir d'un objet Datetime en Python