Konvertieren von Python Datetime in Epoche mit strftime
Beim Konvertieren eines Python-Datetime-Objekts in die Anzahl der Sekunden seit Epoche mithilfe von strftime('% s')-Format verwenden, kann es zu einem unerwarteten Ergebnis kommen. Anstelle der korrekten Anzahl von Sekunden aus der Epoche erhalten Sie möglicherweise einen Wert, der um eine Stunde abweicht. Dies liegt daran, dass strftime die Systemzeitzone berücksichtigt und eine Zeitzonenverschiebung anwendet.
Lösung:
Um dieses Problem zu vermeiden und den richtigen Epochenzeitstempel zu erhalten, stehen mehrere Optionen zur Verfügung :
Python 3.3 und Später:
Verwenden Sie die timestamp()-Methode:
>>> datetime.datetime(2012, 4, 1, 0, 0).timestamp() 1333234800.0
Python 3.2 oder früher:
Führen Sie die Konvertierung durch explizit:
>>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds() 1333238400.0
Vermeiden Sie die Verwendung von strftime('%s'):
Es ist wichtig zu beachten, dass %s nicht offiziell unterstützt wird durch Pythons strftime-Funktion. Seine Funktionalität hängt von der strftime-Implementierung des Systems ab, die je nach Plattform variieren und zu Zeitzonenunterschieden führen kann. Daher wird empfohlen, die oben genannten Methoden für genaue Konvertierungen von Epochenzeitstempeln zu verwenden.
Das obige ist der detaillierte Inhalt vonWie konvertiert man Python-Datetime-Objekte genau in Epochen-Zeitstempel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!