为什么找不到Python日期时间增量?

时间:2016-06-23 01:07:45

标签: python timedelta python-datetime

我正在尝试以mmddyyyy格式制作一系列日期。日期将从当天开始,然后在未来两周内开始。所以这一切都取决于开始日期。当我运行我的代码时,我得到一个错误,指出:

Traceback (most recent call last):
File "timeTest.py", line 8, in <module>
day = datetime.timedelta(days=i)
AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'

我不确定为什么会这样,因为在线搜索后,我注意到人们正在以这种方式使用'timedelta'。

这是我的代码:

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + datetime.timedelta(days=i)
    print day

3 个答案:

答案 0 :(得分:17)

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + datetime.timedelta(days=i)
    print day

您收到的错误是,datetime没有属性timedelta。它发生了,因为您从datetime特定的东西导入。要立即访问timedelta,请键入timedelta而不是datetime.timedelta

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + timedelta(days=i)
    print day

就像那样,你的代码应该正常工作。另外,请密切注意错误消息并尝试仔细阅读。如果你足够专注,你通常可以自己解决问题。

答案 1 :(得分:3)

您已导入timedelta。您不需要通过日期时间访问它。

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + timedelta(days=i)
    print day

答案 2 :(得分:1)

您要调用的方法是datetime.timedelta,如here所示。 datetime是包含timedelta的模块。

如果您查看import行:

from datetime import datetime, date, time, timedelta

...您会看到您从datetime模块导入datetime 。因此,当您致电datetime.timedelta时,您实际上正在调用datetime.datetime.timedelta,而该className={"control-label text-sm-right col-sm-"+this.state.columns[0]}不存在。