12
Cách thành ngữ/hiệu quả nhất để chuyển đổi từ thời gian sửa đổi được lấy từ số stat()
gọi cho đối tượng datetime
là gì? Tôi đã đưa ra những điều sau (python3):Từ stat(). St_mtime đến 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)
Dường như một bout, và một chút ngạc nhiên rằng tôi phải cứng mã hóa kỷ nguyên Unix trong đó. Có cách nào trực tiếp hơn không?
Để rõ ràng, đó là một hàm tạo thay thế ('classmethod') trên' datetime' _class_, không phải là hàm của 'datetime' _module_. Vì vậy, nếu bạn chỉ có 'nhập datetime' ở đầu tệp, bạn cần' datetime.datetime.fromtimestamp (...) '. Ngoài ra, OP được sử dụng 'pathlib', không phải là' os.path', mà nên là 'Path (). Stat(). St_mtime'; chúng thậm chí không bao giờ nhập 'os', do đó, việc sử dụng' path.getmtime' từ 'os.path' có thể hơi khó hiểu trong ngữ cảnh của OP. –
ShadowRanger
Tôi đã sửa nó để hiển thị datetime được sử dụng hai lần với datetime nhập khẩu. – CashCow