Maison > Article > développement back-end > Comment convertir des fuseaux horaires en Python : un guide complet
Conversion de fuseau horaire Python expliquée
La conversion de l'heure sur différents fuseaux horaires peut être une tâche courante en Python. Cette question explore comment effectuer cette conversion efficacement.
L'approche recommandée consiste à convertir l'heure d'intérêt en un objet datetime compatible UTC. En effet, les objets datetime en Python n'incluent pas intrinsèquement d'informations sur le fuseau horaire.
Une fois l'heure au format UTC, vous pouvez utiliser la fonction astimezone pour la convertir dans le fuseau horaire souhaité. Par exemple, considérons le code suivant :
<code class="python">from datetime import datetime import pytz utcmoment_naive = datetime.utcnow() utcmoment = utcmoment_naive.replace(tzinfo=pytz.utc)</code>
Ceci convertit l'heure UTC actuelle en un objet datetime compatible UTC. Pour convertir vers un fuseau horaire spécifique, utilisez ce qui suit :
<code class="python">localDatetime = utcmoment.astimezone(pytz.timezone('America/Los_Angeles'))</code>
Cela convertit l'heure UTC en heure du Pacifique (PT) à Los Angeles.
Dans les scénarios où l'heure peut ne pas exister dans le fuseau horaire converti en raison de l'heure d'été ou d'autres facteurs, vous pouvez utiliser l'approche suivante :
<code class="python">localmoment_naive = datetime.strptime('2013-09-06 14:05:10', '%Y-%m-%d %H:%M:%S') localtimezone = pytz.timezone('Australia/Adelaide') try: localmoment = localtimezone.localize(localmoment_naive, is_dst=None) print("Time exists") utcmoment = localmoment.astimezone(pytz.utc) except pytz.exceptions.NonExistentTimeError as e: print("NonExistentTimeError")</code>
Cela tente de convertir une heure locale en UTC, en gérant la possibilité que l'heure n'existe pas en raison de l'heure d'été. temps.
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!