Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich in Python ein naives Datetime-Objekt in ein Zeitzonen-fähiges Objekt konvertieren?

Wie kann ich in Python ein naives Datetime-Objekt in ein Zeitzonen-fähiges Objekt konvertieren?

Mary-Kate Olsen
Freigeben: 2024-11-25 20:18:11
Original
273 Leute haben es durchsucht

How Can I Convert a Naive Datetime Object to a Timezone-Aware Object in Python?

Konvertieren eines naiven Datetime-Objekts in ein Zeitzonen-Aware

In Python können DateTime-Objekte entweder Zeitzonen-Aware oder Zeitzonen-naiv sein. Ein Zeitzonen-bewusstes Datetime-Objekt enthält einen Verweis auf eine bestimmte Zeitzone, ein Zeitzonen-naives Datetime-Objekt dagegen nicht.

Beim Vergleich von Zeitzonen-bewussten und Zeitzonen-naiven Datetime-Objekten ist es wichtig, Folgendes zu verstehen:

  1. astimezone(): Diese Methode versucht, ein Zeitzonen-naives Datetime-Objekt in ein zu konvertieren Zeitzonenbewusstes Datetime-Objekt. Sie kann jedoch nicht auf naive Datetime-Objekte angewendet werden, wie im bereitgestellten Codeausschnitt zu sehen ist.
  2. replace(): Die Methode „replace“ akzeptiert Argumente, um Werte in einem Datetime-Objekt zu ersetzen, einschließlich der tzinfo-Feld. Mit dieser Methode kann man das tzinfo-Feld auf die gewünschte Zeitzone einstellen. Wie im Codeblock gezeigt, führt das Ersetzen jedoch nicht automatisch dazu, dass das Datetime-Objekt die Zeitzone berücksichtigt.

Um ein naives Datetime-Objekt korrekt in ein Zeitzonen-sensitives Objekt zu konvertieren, verwenden Sie localize ()Methode:

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = pytz.utc.localize(unaware)
Nach dem Login kopieren

Die Methode localize verwendet ein naives Datetime-Objekt und eine bestimmte Zeitzone als Argumente. Es gibt ein neues datetime-Objekt zurück, das die Zeitzone berücksichtigt und die ursprünglichen datetime-Werte beibehält.

Für bestimmte Zeitzonen, die keine Sommerzeitberechnungen beinhalten, wie z. B. UTC, kann auch der folgende Ansatz verwendet werden:

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = unaware.replace(tzinfo=pytz.UTC)
Nach dem Login kopieren

In diesem Fall setzt Ersetzen das tzinfo-Feld direkt auf die angegebene Zeitzone, was zu einem datetime-Objekt mit Zeitzonenerkennung führt.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python ein naives Datetime-Objekt in ein Zeitzonen-fähiges Objekt konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage