如何以 python 列表的形式获取最近 20 天的日期?

how to get the last 20 days dates in the form of list in python?

如何使用 datedatetime

获取 current date 之前的最后 20 days 日期

例如 CurrentDate = 2020-11-02

我可以轻松获得 previous 日期
这是代码

from datetime import date, timedelta
today = date.today()
yesterday = today - timedelta(days = 1)
print(today)
print(yesterday)

但是我如何获取 python 中过去的最后一个 20 days 日期?

我的预期输出像

Dateslist= ['2020-10-13','2020-10-14','2020-10-15','2020-10-16','2020-10-17','2020-10-18','2020-10-19',
...., '2020-11-02']

如有任何帮助,我们将不胜感激,并提前致谢

试试这个:

from datetime import date, timedelta
today = date.today()

lst = []

for x in range(20):
   lst.append(today - timedelta(days = x+1))

print(today)
print(lst)

输出:

[datetime.date(2020, 11, 1), datetime.date(2020, 10, 31), datetime.date(2020, 10, 30), datetime.date(2020, 10, 29), datetime.date(2020, 10, 28), datetime.date(2020, 10, 27), datetime.date(2020, 10, 26), datetime.date(2020, 10, 25), datetime.date(2020, 10, 24), datetime.date(2020, 10, 23), datetime.date(2020, 10, 22), datetime.date(2020, 10, 21), datetime.date(2020, 10, 20), datetime.date(2020, 10, 19), datetime.date(2020, 10, 18), datetime.date(2020, 10, 17), datetime.date(2020, 10, 16), datetime.date(2020, 10, 15), datetime.date(2020, 10, 14), datetime.date(2020, 10, 13)]

你可以用列表理解来做到这一点

today = date.today()
Dateslist = [today - timedelta(days = day) for day in range(20)]

这将 return datime 对象,以防您需要在代码中的其他任何地方使用它们,如果您想要像预期输出一样的字符串,只需添加 str()

Dateslist = [str(today - timedelta(days = day)) for day in range(20)]

如果您需要在字符串中进行更高级的时间格式化,datetime.strftime() 值得检查