12
Was ist der idiomatische/effiziente Weg, um von einer Änderungszeit, die von stat()
abgerufen wird, in ein datetime
Objekt zu konvertieren? Ich kam mit dem Follow-up (python3):Von stat(). St_mtime bis datetime?
from datetime import datetime, timedelta, timezone
from pathlib import Path
path = Path('foo')
path.touch()
statResult = path.stat()
epoch = datetime(1970, 1, 1, tzinfo=timezone.utc)
modified = epoch + timedelta(seconds=statResult.st_mtime)
print('modified', modified)
Scheint um einen Kampf, und ein wenig überraschend, dass ich zu hart Code in dort die Unix-Epoche haben. Gibt es einen direkteren Weg?
klar sein, das ist ein alternativer Konstruktor ('classmethod') auf dem' datetime' _class_, nicht eine Funktion des 'datetime' _module_. Wenn Sie also nur 'import datetime' am Anfang der Datei haben, benötigen Sie' datetime.datetime.fromtimestamp (...) '. Wenn das OP 'pathlib', nicht' os.path' verwendet, sollte das 'Path () sein. Stat(). St_mtime'; Sie importierten niemals "os", so dass die Verwendung von "path.getmtime" aus "os.path" im OP-Kontext etwas verwirrend sein könnte. –
ShadowRanger
Ich habe es so korrigiert, dass datetime zweimal mit import datetime angezeigt wird. – CashCow