Bei der Arbeit mit Datums- und Uhrzeitangaben ist es häufig erforderlich, zwischen verschiedenen Zeitzonen zu konvertieren, insbesondere beim Abrufen und Anzeigen persistenter Daten. Dieser Artikel zeigt, wie man eine UTC-Datumszeit in eine lokale Datumszeit konvertiert, indem man nur die Python-Standardbibliothek verwendet und mehrere Lösungen für Python 2 und 3 bietet.
Zum Konvertieren einer UTC-Datumszeit in Um ein lokales Datum und eine lokale Uhrzeit zu verwenden, müssen wir die standardmäßige lokale Zeitzone kennen. Leider bietet Python keine einfache Methode zum Abrufen dieser Informationen. Wir können jedoch ein Zeitzonenobjekt erstellen und verwenden, um es darzustellen.
In Python 3.3 können wir die Methode datetime.astimezone(tz) verwenden, um das zu konvertieren datetime in eine lokale Zeitzone umwandeln. Allerdings müssen wir noch die standardmäßige lokale Zeitzone abrufen, was wir mit timezone.utc erreichen können.
<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>
In Python 2/3, wo datetime.astimezone () nicht verfügbar ist, können wir den folgenden Ansatz verwenden:
<code class="python">import calendar from datetime import datetime, timedelta def utc_to_local(utc_dt): # get integer timestamp to avoid precision lost 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>
Hier ist ein Beispiel für die Verwendung der Funktion utc_to_local() mit einer benutzerdefinierten Formatierungsfunktion:
<code class="python">from datetime import datetime def aslocaltimestr(utc_dt): return utc_to_local(utc_dt).strftime('%Y-%m-%d %H:%M:%S.%f %Z%z') utc_dt1 = datetime(2010, 6, 6, 17, 29, 7, 730000) utc_dt2 = datetime(2010, 12, 6, 17, 29, 7, 730000) utc_dt3 = datetime.utcnow() print(aslocaltimestr(utc_dt1)) print(aslocaltimestr(utc_dt2)) print(aslocaltimestr(utc_dt3))</code>
Das Konvertieren einer UTC-Datumszeit in eine lokale Datumszeit nur unter Verwendung der Standardbibliothek in Python erfordert entweder die Erstellung eines Zeitzonenobjekts oder die Verwendung eines komplexeren Ansatzes mit Kalender- und Datum-/Uhrzeitoperationen. Während die Verwendung von pytz oder tzlocal bequemer ist, demonstrieren diese Lösungen die Flexibilität der Python-Standardbibliothek für die Handhabung von Datums-/Uhrzeitkonvertierungen ohne externe Abhängigkeiten.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTC Datetime in die lokale Zeitzone mithilfe der Standardbibliothek von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!