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_の関数ではなく、' datetime' _class_の代わりのコンストラクタ( 'classmethod')です。ですから、ファイルの先頭に 'import datetime'があれば' datetime.datetime.fromtimestamp(...) 'が必要です。また、OPが 'os.path'ではなく' pathlib'を使用しているので、 'Path()。stat()。st_mtime';でなければなりません。彼らは 'os'をインポートすることさえなかったので、' os.path'から 'path.getmtime'を使うことは、OPの文脈で少し混乱するかもしれません。 –
ShadowRanger
私は、datetimeがimport datetimeで2回使われていることを表示するように修正しました。 – CashCow