Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiere ich die Python-Objekte „datetime.date' und „datetime.datetime' genau in UTC-Zeitstempel?

Wie konvertiere ich die Python-Objekte „datetime.date' und „datetime.datetime' genau in UTC-Zeitstempel?

Patricia Arquette
Freigeben: 2024-12-19 22:53:10
Original
590 Leute haben es durchsucht

How to Accurately Convert Python `datetime.date` and `datetime.datetime` Objects to UTC Timestamps?

Konvertieren von datetime.date in UTC-Zeitstempel in Python

Beim Umgang mit Datumsangaben in Python besteht die Notwendigkeit, diese in UTC-Zeitstempel für zu konvertieren verschiedene Anwendungen. Die Verwendung herkömmlicher Methoden wie datetime.datetime.utcfromtimestamp(time.mktime(d)) kann jedoch zu falschen Ergebnissen führen.

Konvertieren eines UTC-Datums in Sekunden seit der Epoche

Für ein in UTC dargestelltes Datum d lautet die richtige Formel zur Umrechnung in Sekunden seit der Epoche:

1

timestamp1 = calendar.timegm(d.timetuple())

Nach dem Login kopieren

Dies Methode stellt sicher, dass der resultierende Zeitstempel das Datum in UTC darstellt.

Konvertieren eines Ortszeitdatums in Sekunden seit der Epoche

Wenn das Datum d in der lokalen Zeitzone liegt, verwenden Sie mktime () kann zu falschen Ergebnissen führen. Um dies zu beheben, können wir Folgendes verwenden:

1

timestamp2 = time.mktime(d.timetuple())

Nach dem Login kopieren

Beachten Sie jedoch, dass Zeitstempel1 und Zeitstempel2 unterschiedlich sein können, wenn die lokale Mitternacht von der UTC-Mitternacht abweicht.

Konvertieren von datetime.date in UTC ohne Calendar.timegm()

Um ein datetime.date-Objekt direkt in einen UTC-Zeitstempel zu konvertieren, müssen Sie kann die folgenden Formeln verwenden:

1

2

timestamp = (utc_date.toordinal() - date(1970, 1, 1).toordinal()) * DAY

timestamp = (utc_date - date(1970, 1, 1)).days * DAY

Nach dem Login kopieren

Konvertieren von datetime.datetime in UTC in POSIX-Zeitstempel

Für ein datetime.datetime-Objekt, das bereits in UTC ist, gelten die folgenden Methoden verfügbar:

  • Python 3.3 Angebote datetime.timestamp():

1

timestamp = dt.replace(tzinfo=timezone.utc).timestamp()

Nach dem Login kopieren
  • Python 3 (< 3.3):

1

timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)

Nach dem Login kopieren
  • Python 2:

1

timestamp = (dt - datetime(1970, 1, 1)).total_seconds()

Nach dem Login kopieren

Konvertieren eines Aware Datetime-Objekts in POSIX-Zeitstempel

Für ein bewusstes Datetime-Objekt (Datetime mit Zeitzoneninformationen) wird der folgende Ansatz empfohlen:

1

2

3

timestamp = dt.timestamp() # Python 3.3+

timestamp = (dt - epoch) / timedelta(seconds=1) # Python 3

timestamp = (dt - epoch) // timedelta(seconds=1) # Python 3 integer timestamp

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiere ich die Python-Objekte „datetime.date' und „datetime.datetime' genau in UTC-Zeitstempel?. 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