首页 > 解决方案 > Python将ctime转换为访问后的天数

问题描述

我有一个 ctime 格式的文件访问时间 - 但我真正需要的是自上次访问文件以来的天数。如何将我的 ctime 日期转换为自上次访问以来的天数?

所以这:

fileStatObject = os.stat( iDir + "/" + fileName )
accessTime = time.ctime( fileStatObject[stat.ST_ATIME] )
print accessTime

结果如下:2020 年 6 月 23 日星期二 16:06:04

但我需要的是:113

标签: python-3.7ctime

解决方案


只是不要调用ctime它 - 它将时间戳转换为时间戳的字符串表示形式。相反,您可以找到自该时间戳以来经过了多少时间,并以天为单位表示:

file_stat = os.stat(os.path.join(i_dir, file_name))
access_timestamp = datetime.datetime.fromtimestamp(file_stat[stat.ST_ATIME])
elapsed = datetime.datetime.now() - access_timestamp
print(f"File was accessed {elapsed.days} days ago")

您可能希望对经过的时间进行进一步的四舍五入,但这应该有助于说明如何更进一步。

您还应该注意时区问题。您可能需要使用utcnow()而不是now(); 我没有在这个答案中解决这个问题。


推荐阅读