Wie konvertiere ich ein naives Datetime-Objekt in ein bewusstes Datetime-Objekt in Python?

DDD
Freigeben: 2024-11-24 22:59:11
Original
964 Leute haben es durchsucht

How to Convert a Naive Datetime Object to an Aware Datetime Object in Python?

So machen Sie ein Datetime-Objekt bewusst (nicht naiv)

In Python können Datetime-Objekte entweder naiv oder bewusst sein. Einem naiven Objekt ist keine Zeitzone zugeordnet, während dies bei einem bewussten Objekt der Fall ist. Dies kann beim Vergleich von Datetime-Objekten zu Problemen führen, da naive Objekte nicht mit bewussten Objekten verglichen werden können.

Es gibt einige Möglichkeiten, ein naives Datetime-Objekt bewusst zu machen. Eine Möglichkeit besteht darin, die Methode „localize“ zu verwenden. Die Methode „localize“ verwendet ein Pytz-Zeitzonenobjekt als Argument und gibt ein neues Datetime-Objekt zurück, das die angegebene Zeitzone kennt.

Zum Beispiel:

import datetime
import pytz

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

Dadurch wird ein neues Datetime-Objekt erstellt das die UTC-Zeitzone kennt.

Eine andere Möglichkeit, ein naives Datetime-Objekt darauf aufmerksam zu machen, ist die Verwendung der Ersetzungsmethode. Die Methode „replace“ akzeptiert eine Reihe von Schlüsselwortargumenten, darunter eines für das tzinfo-Attribut. Das tzinfo-Attribut kann auf ein Pytz-Zeitzonenobjekt gesetzt werden, um das Datetime-Objekt darauf aufmerksam zu machen.

Zum Beispiel:

import datetime
import pytz

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

Dadurch wird auch ein neues Datetime-Objekt erstellt, das die UTC kennt Zeitzone.

Sobald ein Datetime-Objekt bekannt ist, kann es mit anderen bekannten Datetime-Objekten verglichen werden. Zum Beispiel:

import datetime
import pytz

aware_1 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0))
aware_2 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0))

if aware_1 == aware_2:
    print("The two datetime objects are equal.")
Nach dem Login kopieren

Dies wird gedruckt: „Die beiden Datums-/Uhrzeitobjekte sind gleich.“

Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein naives Datetime-Objekt in ein bewusstes Datetime-Objekt in Python?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage