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!