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

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 06:00:04698parcourir

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

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

La conversion d'une instance de date-heure UTC en date-heure locale peut être effectuée à l'aide de la bibliothèque standard dans Python. Une solution courante consiste à utiliser la méthode astimezone, mais elle nécessite de fournir un objet timezone. Voici des approches alternatives utilisant uniquement la bibliothèque standard :

Python 3.3 :

<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>

Python 2/3 :

<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>

Utilisation de pytz (Python 2/3) :

<code class="python">import pytz

local_tz = pytz.timezone('Europe/Moscow') # Provide your local timezone name

def utc_to_local(utc_dt):
    local_dt = utc_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)
    return local_tz.normalize(local_dt)</code>

Exemple :

<code class="python">def aslocaltimestr(utc_dt):
    return utc_to_local(utc_dt).strftime('%Y-%m-%d %H:%M:%S.%f %Z%z')

utc_dt = datetime(2010, 6, 6, 17, 29, 7, 730000)
print(aslocaltimestr(utc_dt))</code>

Cela imprimera le fichier local chaîne datetime basée sur le fuseau horaire par défaut.

Remarque : Le fuseau horaire par défaut n'est pas toujours fiable et peut varier en fonction des paramètres du système. Pour des résultats plus fiables et multiplateformes, il est recommandé de spécifier explicitement le fuseau horaire local.

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