为什么找不到 Python 日期时间时间增量?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/37980655/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Why is Python datetime time delta not found?
提问by questionier
I am trying to make an array of dates in mmddyyyy format. The dates will start on the current day and then go two weeks into the future. So it all depends on the starting date. When I run my code I get an error that states:
我正在尝试以 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'
I am not sure why this is happening because after searching online, I noticed that people are using the 'timedelta' in this way.
我不确定为什么会发生这种情况,因为在网上搜索后,我注意到人们正在以这种方式使用“timedelta”。
Here is my code:
这是我的代码:
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
回答by fulaphex
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
The error that you are getting says, that datetime
has no attribute timedelta
. It happens, because you have imported from datetime
specific things. In order to access timedelta
now you type timedelta
instead of datetime.timedelta
.
你得到的错误说,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
Like that, your code should work properly. Also, pay closer attention to the error messages and try to read them carefully. If you focus enough, you often can sort out the problem basing on them on your own.
这样,您的代码应该可以正常工作。另外,请密切注意错误消息并尝试仔细阅读它们。如果你足够专注,你往往可以根据他们自己解决问题。
回答by Falmarri
You already imported timedelta
. You don't need to access it through 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
回答by touch my body
The method you want to call is datetime.timedelta
, as seen here. datetime
is the module containing timedelta
.
要调用该方法datetime.timedelta
,如看到这里。 datetime
是包含timedelta
.
If you look at your import
line:
如果你看看你的import
行:
from datetime import datetime, date, time, timedelta
...you'll see you're importing the datetime
classfrom the datetime
module. So, when you call datetime.timedelta
, you're actually calling datetime.datetime.timedelta
, which doesn't exist.
...你会看到你正在从模块中导入datetime
类datetime
。因此,当您调用 时datetime.timedelta
,实际上是在调用datetime.datetime.timedelta
,而该调用并不存在。