Python中遍历日期范围并设置迭代起止日期的方法
遍历日期范围生成连续日期对(fromDate/toDate)
你需要生成的是连续的相邻日期对,每个迭代中fromDate为当前日期,toDate为下一日日期,直到toDate等于指定的endDate。可以基于你现有的代码逻辑修改,直接生成所需的日期对:
基础实现代码
import datetime start_date = datetime.date(2022, 10, 31) end_date = datetime.date(2022, 11, 04) # 计算日期范围内的天数差,确定迭代次数 total_days = (end_date - start_date).days # 遍历生成每一组fromDate和toDate for n in range(total_days): from_date = start_date + datetime.timedelta(days=n) to_date = start_date + datetime.timedelta(days=n + 1) # 按需求输出或处理日期对 print(f"fromDate='{from_date}', toDate='{to_date}'")
运行这段代码会输出:
fromDate='2022-10-31', toDate='2022-11-01' fromDate='2022-11-01', toDate='2022-11-02' fromDate='2022-11-02', toDate='2022-11-03' fromDate='2022-11-03', toDate='2022-11-04'
进阶:生成日期对列表
如果需要将所有日期对存储起来后续使用,可以生成列表:
import datetime start_date = datetime.date(2022, 10, 31) end_date = datetime.date(2022, 11, 04) date_pairs = [] total_days = (end_date - start_date).days for n in range(total_days): from_date = start_date + datetime.timedelta(days=n) to_date = start_date + datetime.timedelta(days=n + 1) date_pairs.append((from_date, to_date)) # 遍历列表使用日期对 for from_dt, to_dt in date_pairs: print(f"fromDate='{from_dt}', toDate='{to_dt}'")
转为字符串格式
如果需要将日期转为YYYY-MM-DD格式的字符串,可以使用strftime方法:
from_date_str = from_date.strftime('%Y-%m-%d') to_date_str = to_date.strftime('%Y-%m-%d') print(f"fromDate='{from_date_str}', toDate='{to_date_str}'")
内容的提问来源于stack exchange,提问作者user3222718
相关产品推荐
相关产品推荐

