问题描述
我有ctime格式的文件访问时间-但我真正需要的是自上次访问文件以来的天数。如何将ctime日期转换为自上次访问以来的天数?
所以这个:
fileStatObject = os.stat( iDir + "/" + fileName )
accessTime = time.ctime( fileStatObject[stat.ST_ATIME] )
print accessTime
结果是: 2020年6月23日星期二16:06:04
但是我需要的是: 113
解决方法
请勿在其上调用stream.read
-将时间戳转换为时间戳的字符串表示形式。相反,您可以找到自该时间戳记以来经过了多少时间,并以天数表示:
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()
;我尚未在此答案中解决此问题。