python自动生成7天时间日期

博客内容介绍了在Python中如何避免错误地使用`datetime`模块来生成从特定日期开始的7天日期序列。错误提示为`type object 'datetime.datetime' has no attribute 'timedelta'`。解决方案包括正确导入`datetime`模块以及使用`strptime`和`strftime`进行日期格式转换,结合`timedelta`计算时间差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网络上有很多写法,但终会出错,据查到次错误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是时间差的计算公式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值