Maison  >  Article  >  développement back-end  >  Comment convertir des fuseaux horaires en Python : un guide complet

Comment convertir des fuseaux horaires en Python : un guide complet

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 06:38:02192parcourir

How to Convert Timezones in Python: A Comprehensive Guide

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn