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
Libérer: 2024-11-03 09:02:02
original
372 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

Sortie :

2023-07-18 18:00:00.000000+06:00
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal