python自动生成7天时间日期

在网络上有很多写法,但终会出错,据查到次错误type object 'datetime.datetime' has no attribute 'timedelta'因为导入包form datatime import datetime 后语句中写了两个datetime:

import datetime

def dateRange(beginDate, endDate):

    dates = []

    dt = datetime.datetime.strptime(beginDate, "%Y-%m-%d")

    date = beginDate[:]

    while date <= endDate:

        dates.append(date)

        dt = dt + datetime.timedelta(1)

        date = dt.strftime("%Y-%m-%d")

    return dates

if __name__ == '__main__':

    print dateRange("2016-01-01""2016-02-01")

如果写import datetime,则需要如上写法

后来又出现了如下错误type object 'datetime.datetime' has no attribute 'timedelta',然而我的语句中只写了一个datetime,后来我发现,如果不导入datetime包可以自己使用,而且只需要一个datetime,而第二句话dt = dt + datetime.timedelta(1)只需要写成dt = dt + timedelta(1),最终我写了一个以某天为开始生成7天日期的代码:

def dateRange(beginDate):
    dates = []
    i=0
    begin =beginDate.strftime("%Y-%m-%d")
    dt = datetime.strptime(begin, "%Y-%m-%d")
    date = begin[:]
    while i < 7:
        dates.append(date)
        dt = dt + timedelta(1)
        date = dt.strftime("%Y-%m-%d")
        i+=1
    return dates

其中strptime(begin,"%Y-%m-%d")是由字符串转化成日期格式,而strftime为割取时间的时分秒,只留下年月日,timedelta是时间差的计算公式

你可能感兴趣的:(python)