Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man ein Python-Datetime-Objekt präzise in Epoch Time, ohne strftime(\'%s\') zu verwenden?

Wie konvertiert man ein Python-Datetime-Objekt präzise in Epoch Time, ohne strftime(\'%s\') zu verwenden?

DDD
DDDOriginal
2024-11-20 04:53:01351Durchsuche

How to Accurately Convert a Python datetime Object to Epoch Time Without Using strftime('%s')?

Python-Datetime in Epoche mithilfe von strftime konvertieren

Ursprünglich bestand das Ziel darin, eine UTC-Zeit in die Anzahl der Sekunden seit der Verwendung der Epoche umzuwandeln strftime. Bei Verwendung von strftime mit dem Format „%s“ wich der resultierende Wert jedoch um eine Stunde von der erwarteten Epochenanzahl ab. Die Untersuchung dieser Diskrepanz ergab, dass strftime die Systemzeit berücksichtigt und sich an Zeitzonenunterschiede anpasst, obwohl Datum und Uhrzeit als naiv gelten.

Lösung

Um dieses Problem zu lösen, sollten Sie Folgendes in Betracht ziehen die folgenden Alternativen:

Python 3.3 und höher

  • Verwenden Sie die timestamp()-Methode von datetime:

    >>> datetime.datetime(2012, 4, 1, 0, 0).timestamp()
    1333234800.0

Python 3.2 und früher

  • Berechnen Sie explizit die Differenz zwischen der angegebenen Datumszeit und der Epochen-Datumszeit:

    >>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()
    1333238400.0

Achtung: strftime('%s') vermeiden

Es ist wichtig zu beachten, dass datetime den Formatbezeichner „%s“ für strftime nicht offiziell unterstützt. Seine aktuelle Funktionalität beruht auf der Interaktion mit der strftime-Implementierung des Systems, die Zeitzonenunterschiede anpasst. Die Verwendung von strftime('%s') kann aufgrund möglicher Zeitzonenschwankungen zu inkonsistenten Ergebnissen führen.

Das obige ist der detaillierte Inhalt vonWie konvertiert man ein Python-Datetime-Objekt präzise in Epoch Time, ohne strftime(\'%s\') zu verwenden?. 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