Maison > Article > développement back-end > Gestion des fuseaux horaires en Python
Un fuseau horaire est une zone géographique où toutes les horloges sont réglées à la même heure standard, mais différents emplacements peuvent avoir des décalages horaires différents en raison de choix politiques, de changements de fuseau horaire historiques, de différences d'heure d'été et d'autres facteurs. Le module datetime et la bibliothèque pytz de Python fournissent un ensemble de classes permettant de travailler respectivement avec les dates, les heures et les fuseaux horaires. La gestion des fuseaux horaires dans le développement de logiciels est très importante car elle affecte l'exactitude des résultats fournis par le programme. Cet article présentera comment utiliser les modules datetime et pytz pour gérer les fuseaux horaires en Python à travers trois exemples annotés.
Doit utiliser les modules datetime et pytz de Python pour gérer les fuseaux horaires. La fonctionnalité de fuseau horaire est fournie par la bibliothèque pytz du package tiers, tandis que le module datetime fournit des classes pour gérer les dates et les heures.
pip install pytz pip install datetime
Le module datetime propose plusieurs classes pour travailler avec les dates et les heures. Les classes principales sont date, tzinfo, timedelta, time et datetime.
La classe datetime représente une date et une heure spécifiques et possède plusieurs attributs, notamment année, mois, jour, heure, minute, seconde et microseconde.
Il existe également de nombreuses méthodes pour traiter les objets datetime dans la classe datetime. Nous pouvons utiliser la fonction replace() pour modifier les caractéristiques d'un ou plusieurs objets datetime tout en laissant les autres caractéristiques inchangées.
Les objets Datetime peuvent être formatés sous forme de chaînes d'une manière spécifiée à l'aide de la fonction strftime().
La fonction timezone() de la bibliothèque pytz peut être utilisée pour définir le fuseau horaire en Python. Le module datetime peut utiliser l'objet timezone renvoyé par la fonction timezone(), qui accepte une chaîne spécifiant le nom du fuseau horaire. nous pouvons utiliser le code suivant pour définir le fuseau horaire sur "US/Eastern" −
import pytz from datetime import datetime eastern = pytz.timezone('US/Eastern') dt = datetime.now(eastern)
Cependant, la classe datetime ne fournit pas de prise en charge intégrée des fuseaux horaires. C'est là qu'intervient la bibliothèque pytz. Le module pytz fournit la classe timezone, qui représente un objet timezone contient des informations sur le décalage horaire et l'heure d'été. règles horaires et nom du fuseau horaire
.Le module pytz fournit également plusieurs fonctions pour travailler avec les fuseaux horaires, notamment localize() et normalize(). La fonction localize() est utilisée pour définir le fuseau horaire d'un objet datetime, tandis que la fonction normalize() est utilisé pour convertir un objet datetime d'un fuseau horaire à un autre
.Créez des objets datetime pour afficher l'heure dans un fuseau horaire spécifique
Utilisez la fonction localize() pour définir le fuseau horaire
Changez le fuseau horaire avec la fonction astimezone()
Convertissez un objet datetime en chaîne à l'aide de la fonction strftime() pour un fuseau horaire spécifique
Créez un objet fuseau horaire à l'aide de la fonction pytz.timezone() et attribuez-le à une variable
import pytz from datetime import datetime # Create a timezone object for US/Eastern eastern_tz = pytz.timezone('US/Eastern') now = datetime.now() now_eastern = eastern_tz.localize(now) print(now_eastern)
2023-04-17 16:58:31.317459-04:00
Créez un objet fuseau horaire pour les États-Unis/Est à l'aide de pytz.timezone(), créez un objet datetime pour l'heure actuelle à l'aide de datetime.now(), puis définissez le fuseau horaire de l'objet datetime à l'aide de localize() méthode de l'objet fuseau horaire
En utilisant datetime et pytz, nous pouvons utiliser la méthode astimezone() de l'objet datetime.
import pytz from datetime import datetime # Create a timezone object for US/Eastern eastern_tz = pytz.timezone('US/Eastern') now = datetime.now() now_eastern = eastern_tz.localize(now) # Convert the datetime object to Pacific timezone pacific_tz = pytz.timezone('US/Pacific') now_pacific = now_eastern.astimezone(pacific_tz) print(now_pacific)
2023-04-17 13:58:41.599015-07:00
À l'aide de pytz, créez un objet de fuseau horaire pour les États-Unis/Est. Créez un objet datetime de l'heure actuelle en appelant la méthode timezone(). Après avoir appelé now(), utilisez la fonction localise() de l'objet fuseau horaire pour définir le fuseau horaire de l'objet datetime.
Utilisez pytz.timezone() pour instancier un autre objet de fuseau horaire pour les États-Unis/Pacifique et utilisez la méthode astimezone() de l'objet datetime pour convertir l'objet datetime dans le fuseau horaire du Pacifique.
Le formatage devient plus facile avec la méthode strftime() de l'objet datetime.
import pytz from datetime import datetime # Create a timezone object for US/Eastern eastern_tz = pytz.timezone('US/Eastern') now = datetime.now() now_eastern = eastern_tz.localize(now) # Add formatting fmt = '%Y-%m-%d %H:%M:%S %Z%z' now_str = now_eastern.strftime(fmt) print(now_str)
2023-04-17 16:59:06 EDT-0400
Utilisez la fonction strftime() de l'objet datetime. La chaîne de format '%Y-%m- %d%H:%M:%S%Z%z' donne l'année, le mois, le jour, l'heure, la minute. , et deuxièmement, ainsi que l'abréviation du fuseau horaire et le décalage horaire
.Cet article présente les concepts et pratiques de base liés à l'utilisation des fuseaux horaires en Python. Après avoir discuté de l'importance des fuseaux horaires dans la programmation, il explique comment les fuseaux horaires fonctionnent dans le développement de logiciels. Les bibliothèques et packages requis, y compris pytz et datetime, sont ensuite discutés et les instructions d'installation sont fournies. Ensuite, il présente le fonctionnement des fuseaux horaires en Python, notamment la définition des fuseaux horaires, la conversion de l'heure entre les fuseaux horaires et l'utilisation des fuseaux horaires pour formater l'heure. Enfin, un exemple de code pour chaque tâche est fourni, ainsi que des conseils sur la façon de résoudre les problèmes courants de fuseau horaire Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!