Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man mithilfe der Python-Standardbibliothek UTC-Datetime in lokales Datetime?

Wie konvertiert man mithilfe der Python-Standardbibliothek UTC-Datetime in lokales Datetime?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 09:02:02334Durchsuche

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

Konvertieren von UTC-Datetime in lokale Datetime mithilfe der Python-Standardbibliothek

Beim Umgang mit Datetime-Objekten ist es oft notwendig, zwischen UTC (Coordinated Weltzeit) und Ortszeit. Die Python-Standardbibliothek bietet integrierte Funktionen, um dies zu erreichen.

Pytz-Alternative für Python 3.3

In Python 3.3 und höher vereinfacht das Zeitzonenmodul den Konvertierungsprozess:

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

Lösung für Python 2/3

Für Python 2 und 3 besteht ein alternativer Ansatz in der Verwendung von Calendar.timegm und 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>

Beispielverwendung

Um die Konvertierung zu veranschaulichen, betrachten Sie das folgende Beispiel:

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

Ausgabe:

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

Hinweis für DateTime ohne Mikrosekundenauflösung

In Fällen, in denen die UTC-Datumszeit keine Mikrosekundenauflösung hat, kann die astimezone-Methode Mikrosekundenwerte einführen, die in der ursprünglichen Datumszeit nicht vorhanden sind. Um die Präzision zu gewährleisten, verwenden Sie die für Python 2/3 bereitgestellte alternative Methode.

Umgang mit Sommerzeitänderungen

Beide Lösungen berücksichtigen Sommerzeitänderungen (DST) korrekt Konvertieren Sie die UTC-Datumszeit in die entsprechende Ortszeit, wobei die Sommerzeit je nach Bedarf angewendet oder entfernt wird.

Das obige ist der detaillierte Inhalt vonWie konvertiert man mithilfe der Python-Standardbibliothek UTC-Datetime in lokales Datetime?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn