12
什么是从stat()
呼叫调用datetime
对象的修改时间转换成最习惯/有效的方式?我想出了以下(python3):从stat()。st_mtime到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)
似乎一轮回合,并有点出人意料,我有硬编码在那里Unix纪元。有更直接的方法吗?
要清楚的是,'datetime' _class_上的替代构造函数('classmethod'),不是'datetime' _module_的函数。所以如果你只在文件顶部有'import datetime',你需要'datetime.datetime.fromtimestamp(...)'。另外,考虑到OP使用'pathlib',而不是'os.path',它应该是'Path()。stat()。st_mtime';他们甚至从来没有导入'os',所以从'os.path'使用'path.getmtime'在OP的上下文中可能会有点混乱。 –
ShadowRanger
我已将其更正为显示使用导入日期时间两次的日期时间。 – CashCow