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