首页 > 解决方案 > 如何在 python 中创建日期间隔列表?

问题描述

我正在调用一个 API,它允许我在请求 url 中输入开始和结束日期,每个请求都需要一个日期范围在 31 天内?

是否可以像下面的示例一样遍历日期范围?

max_start_date   =  '2017-01-01'
max_end_date =   '2017-12-31'

第一个循环将返回'2017-01-01''2017-01-31'第二个循环应'2017-02-01'返回'2017-03-03'

url = "https://api.awin.com/publishers/{}/transactions/?startDate={}T00%3A00%3A00&endDate={}0T01%3A59%3A59&timezone=UTC&accessToken={}".format(publisher_id, start_date, end_date,token)

标签: pythondatedatetime

解决方案


使用datetime模块:

from datetime import date, timedelta

start = date(2017, 1, 1)
end = date(2017, 12, 31)

while start < end:
    print(start, start + timedelta(days=31))
    start += timedelta(days=31)

如果您需要遍历日历月,请考虑使用relativedeltafrom dateutil

from dateutil.relativedelta import relativedelta

while start < end:
    print(start, start + relativedelta(months=1))
    start += relativedelta(days=31)

(您需要通过运行安装它pip install dateutil

文件:


推荐阅读