Das time
Modul kann innerhalb von Sekunden seit Epoche initialisiert werden:
>>> import time
>>> t1=time.gmtime(1284286794)
>>> t1
time.struct_time(tm_year=2010, tm_mon=9, tm_mday=12, tm_hour=10, tm_min=19,
tm_sec=54, tm_wday=6, tm_yday=255, tm_isdst=0)
Gibt es eine elegante Möglichkeit, ein datetime.datetime
Objekt auf die gleiche Weise?
datetime.datetime.fromtimestamp
funktioniert, wenn Sie die Zeitzone kennen, können Sie die gleiche Ausgabe wie mit time.gmtime
>>> datetime.datetime.fromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 11, 19, 54)
oder
>>> datetime.datetime.utcfromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 10, 19, 54)
In den Dokumenten wird die folgende Methode empfohlen, um ein datetime-Objekt mit Zeitzonenerkennung aus Sekunden seit Epoch zu erhalten:
Python :
from datetime import datetime, timezone
datetime.fromtimestamp(timestamp, timezone.utc)
from datetime import datetime
import pytz
datetime.fromtimestamp(timestamp, pytz.utc)
Beachten Sie, dass datetime.datetime . fromtimestamp (timestamp) und . tcfromtimestamp (timestamp) bei Fenstern vor dem 1. Januar 1970 fehlschlagen, während negative Unix-Zeitstempel auf Unix zu funktionieren scheinen Plattformen. Die Dokumente sagen Folgendes:
Siehe auch Issue1646728