Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中创建日期间隔列表?_Python_Date_Datetime - Fatal编程技术网

如何在python中创建日期间隔列表?

如何在python中创建日期间隔列表?,python,date,datetime,Python,Date,Datetime,我正在调用一个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/{}/trans

我正在调用一个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)
(您需要通过运行
pip install dateutil
来安装它)

文件:


您可以尝试下列日期列表:

import datetime as dt
max_start_date = '2017-01-01'
max_end_date = '2017-12-31'

def dt_range(*args):
    """
    Args are positional, though you could probably 
    toss in an evaluation part to determine which is the min date.
    """
    dt_start = dt.datetime.strptime(args[0], '%Y-%m-%d')
    dt_end = dt.datetime.strptime(args[1], '%Y-%m-%d')
    for i in range(int((dt_end - dt_start).days)+1):
        yield dt_start + dt.timedelta(i)


for i in dt_range(max_start_date, max_end_date):
    print(i.strftime('%Y-%m-%d'))
import datetime as dt
max_start_date = '2017-01-01'
max_end_date = '2017-12-31'

def dt_range(*args):
    """
    Args are positional, though you could probably 
    toss in an evaluation part to determine which is the min date.
    """
    dt_start = dt.datetime.strptime(args[0], '%Y-%m-%d')
    dt_end = dt.datetime.strptime(args[1], '%Y-%m-%d')
    for i in range(int((dt_end - dt_start).days)+1):
        yield dt_start + dt.timedelta(i)


for i in dt_range(max_start_date, max_end_date):
    print(i.strftime('%Y-%m-%d'))