📅  最后修改于: 2023-12-03 15:07:57.360000             🧑  作者: Mango
有时我们需要在两个特定日期之间生成日期列表。在Python中,我们可以使用dateutil库中的rrule函数来生成日期列表。rrule函数可以在给定的时间间隔内自定义复杂的时间规则。
以下是一个生成两个日期之间的所有日期的示例。
from datetime import datetime
from dateutil.rrule import rrule, DAILY
start_date_str = '2022-01-01'
end_date_str = '2022-01-05'
start_date = datetime.strptime(start_date_str, '%Y-%m-%d')
end_date = datetime.strptime(end_date_str, '%Y-%m-%d')
date_list = list(rrule(freq=DAILY, dtstart=start_date, until=end_date))
for date in date_list:
print(date.strftime('%Y-%m-%d'))
以上代码将产生以下输出:
2022-01-01
2022-01-02
2022-01-03
2022-01-04
2022-01-05
首先,我们导入datetime和dateutil库。datetime库将用于将日期字符串转换为datetime对象,dateutil库将用于生成日期列表。
我们定义了两个字符串类型的日期:start_date_str和end_date_str,这些日期将用于生成日期列表。
使用strptime将日期字符串转换为datetime对象:start_date和end_date。
我们使用rrule函数生成所有日期对象,并将这些日期存储在列表中:date_list。此处的freq是规则的频率,可以是DAILY、WEEKLY、MONTHLY、YEARLY等。
最后,我们使用for循环打印所有生成的日期。
问题解决了!你可以使用上面的代码来生成两个给定日期之间的所有日期列表。