Quelle est la façon la plus idiomatique/efficace de convertir d'un temps de modification récupéré de l'appel de stat()
en un objet datetime
? J'ai trouvé ce qui suit (python3):
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)
Semble autour d'un combat, et un peu surprenant que je doive coder en dur l'époque Unix là-dedans. Existe-t-il un moyen plus direct?
Essayez datetime.fromtimestamp (statResult.st_mtime)
par exemple.
import datetime
mod_timestamp = datetime.datetime.fromtimestamp(path.getmtime(<YOUR_PATH_HERE>))
Cela fonctionne pour moi si vous voulez une chaîne lisible:
import datetime
mtime = path.stat().st_mtime
timestamp_str = datetime.datetime.fromtimestamp(mtime).strftime('%Y-%m-%d-%H:%M')