Maison >développement back-end >Tutoriel Python >Comment convertir l'heure UTC en heure locale à l'aide de la bibliothèque standard Python ?

Comment convertir l'heure UTC en heure locale à l'aide de la bibliothèque standard Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 09:02:02411parcourir

How to Convert UTC Datetime to Local Datetime Using Python Standard Library?

Conversion de la date/heure UTC en date-heure locale à l'aide de la bibliothèque standard Python

Lorsque vous traitez des objets datetime, il est souvent nécessaire de convertir entre UTC (coordonné Temps universel) et l’heure locale. La bibliothèque standard Python fournit des fonctionnalités intégrées pour accomplir cela.

Alternative pytz pour Python 3.3

Dans Python 3.3 et supérieur, le module de fuseau horaire simplifie le processus de conversion :

<code class="python">from datetime import datetime, timezone

def utc_to_local(utc_dt):
    return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)</code>

Solution pour Python 2/3

Pour Python 2 et 3, une approche alternative consiste à utiliser calendrier.timegm et datetime.fromtimestamp :

<code class="python">import calendar
from datetime import datetime, timedelta

def utc_to_local(utc_dt):
    timestamp = calendar.timegm(utc_dt.timetuple())
    local_dt = datetime.fromtimestamp(timestamp)
    assert utc_dt.resolution >= timedelta(microseconds=1)
    return local_dt.replace(microsecond=utc_dt.microsecond)</code>

Exemple d'utilisation

Pour illustrer la conversion, considérons l'exemple suivant :

<code class="python">from datetime import datetime

utc_dt = datetime(2023, 7, 18, 12, 0, 0, tzinfo=timezone.utc)

local_dt = utc_to_local(utc_dt)
print(local_dt)</code>

Sortie :

2023-07-18 18:00:00.000000+06:00

Remarque pour DateTime sans résolution en microsecondes

Dans les cas où la date/heure UTC n'a pas de résolution en microsecondes, la méthode astimezone peut introduire des valeurs en microsecondes qui ne sont pas présentes dans la date/heure d'origine. Pour garantir la précision, utilisez la méthode alternative fournie pour Python 2/3.

Gestion des modifications d'heure d'été

Les deux solutions prennent en compte les modifications de l'heure d'été (DST) et correctement convertissez la date/heure UTC en heure locale appropriée avec l'heure d'été appliquée ou supprimée selon les besoins.

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