python - 如何在 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)
解决方案
使用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)
如果您需要遍历日历月,请考虑使用relativedelta
from dateutil
:
from dateutil.relativedelta import relativedelta
while start < end:
print(start, start + relativedelta(months=1))
start += relativedelta(days=31)
(您需要通过运行安装它pip install dateutil
)
文件:
推荐阅读
- arrays - 正确设置循环/如果语句
- java - 关于程序世界生成的问题 - 我只能生成丘陵地形
- c# - AutoMapper:将嵌套对象映射到平面
- python-3.x - Python - Jira 使用 /rest/api/2 创建具有共享配置的项目(现有项目)
- c++ - 程序中的输入和输出
- c++ - 为什么我可以访问其他班级的私人成员?
- typescript - Vue.js 中奇怪的“无限更新循环”
- types - 不同 ocaml 模块中的相同类型不匹配
- angular - 如何在 Typescript 中的字符串中添加新行 - Angular 8
- python - 在属于类的函数内定义变量