我可以从python3的datetime.today()。strftime('%Y%m%d')获取timedelta(days = 180)吗?

时间:2019-03-11 02:32:22

标签: python-3.x

我正在编写一个脚本,用于将名称以YYYYMMDD开头的文件(例如20180201、20180203)移动到超过180天的存档目录。该脚本每天都会从cron作业中运行。

因此,很显然 datetime.today()。strftime('%Y%m%d')返回一个字符串。我似乎找不到找到将int返回日期时间的方法。

我可以这样做: toDay = int(datetime.today()。strftime('%Y%m%d')) 但不知何故似乎很不合时宜。

我不知道datetime.timedelta(days = 180)会产生哪种对象。

1 个答案:

答案 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")