为什么找不到 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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 20:11:39  来源:igfitidea点击:

Why is Python datetime time delta not found?

pythontimedeltapython-datetime

提问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 datetimehas no attribute timedelta. It happens, because you have imported from datetimespecific things. In order to access timedeltanow you type timedeltainstead 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. datetimeis the module containing timedelta.

要调用该方法datetime.timedelta,如看到这里datetime是包含timedelta.

If you look at your importline:

如果你看看你的import行:

from datetime import datetime, date, time, timedelta

...you'll see you're importing the datetimeclassfrom the datetimemodule. So, when you call datetime.timedelta, you're actually calling datetime.datetime.timedelta, which doesn't exist.

...你会看到你正在从模块中导入datetimedatetime。因此,当您调用 时datetime.timedelta,实际上是在调用datetime.datetime.timedelta,而该调用并不存在。