为什么Python中的datetime时间差未找到?

30

我正在尝试创建一个以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个回答

51
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

这样,你的代码应该可以正常工作了。此外,要更加注意错误信息并仔细阅读它们。如果足够专注,通常可以根据它们自行解决问题。


2
感谢您提供的有用答案! - questionier

4
您已经导入了timedelta。您不需要通过datetime来访问它。
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

3
你想要调用的方法是 datetime.timedelta,可以在这里看到。 datetime 是包含 timedelta 的模块。
如果你查看你的 import 行:
from datetime import datetime, date, time, timedelta

在代码中,你会看到导入了来自 datetime 模块的 datetime。因此,当你调用 datetime.timedelta 时,实际上是调用了不存在的 datetime.datetime.timedelta


5
我不知道谁编写了datetime模块,但他们在该模块中创建一个datetime对象是愚蠢的。 - touch my body

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接