我正在编写一个脚本,用于将名称以YYYYMMDD开头的文件(例如20180201、20180203)移动到超过180天的存档目录。该脚本每天都会从cron作业中运行。
因此,很显然 datetime.today()。strftime('%Y%m%d')返回一个字符串。我似乎找不到找到将int返回日期时间的方法。
我可以这样做: toDay = int(datetime.today()。strftime('%Y%m%d')) 但不知何故似乎很不合时宜。
我不知道datetime.timedelta(days = 180)会产生哪种对象。
答案 0 :(得分:1)
它产生一个timedelta
对象。您可以将timedelta
个对象与datetime
个对象之类的对象相加或相减,以产生时间改变了该数量的新对象。
from datetime import datetime, timedelta
def get_date_from_filename(filename):
return datetime.strptime(filename[:8], "%Y%m%d")
filename = "20180201file.txt"
today= datetime.today()
if get_date_from_filename(filename) + timedelta(days=180) <= today:
print("File is 180 days old")
else:
print("file is not that old")