类型对象'没有属性'日期时间'

我得到了以下错误:

输入对象的datetime。Datetime没有Datetime属性

在下面一行:

date = datetime.datetime(int(year), int(month), 1)

有人知道这个错误的原因吗?

如果有帮助的话,我用from datetime import datetime导入了datetime

谢谢

518289 次浏览

Datetime是一个允许处理日期、时间和datetimes(所有这些都是数据类型)的模块。这意味着datetime既是顶级模块,也是该模块中的类型。这很令人困惑。

您的错误可能是基于模块的令人困惑的命名,并且您或您所使用的模块已经导入了。

>>> import datetime
>>> datetime
<module 'datetime' from '/usr/lib/python2.6/lib-dynload/datetime.so'>
>>> datetime.datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)

但是,如果你导入datetime.datetime:

>>> from datetime import datetime
>>> datetime
<type 'datetime.datetime'>
>>> datetime.datetime(2001,5,1) # You shouldn't expect this to work
# as you imported the type, not the module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
我怀疑你或你正在使用的模块之一已经导入如下: from datetime import datetime . < / p >

你应该使用

date = datetime(int(year), int(month), 1)

或改变

from datetime import datetime

import datetime

对于python 3.3

from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)

如果你使用过:

from datetime import datetime

然后简单地将代码写成:

date = datetime(int(year), int(month), 1)

但如果你用过:

import datetime

那么只有你可以这样写:

date = datetime.datetime(int(2005), int(5), 1)

你应该将模块导入到它自己的别名中。

import datetime as dt
my_datetime = dt.datetime(year, month, day)

与其他解决方案相比,上述方案具有以下优点:

  • 调用变量my_datetime而不是date可以减少混淆,因为datetime模块(datetime.date)中已经有date
  • 模块和类(都称为datetime)不相互重叠。

我发现这样容易多了

from dateutil import relativedelta
relativedelta.relativedelta(end_time,start_time).seconds
from datetime import datetime
import time
from calendar import timegm
d = datetime.utcnow()
d = d.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
utc_time = time.strptime(d,"%Y-%m-%dT%H:%M:%S.%fZ")
epoch_time = timegm(utc_time)

我遇到了同样的错误,也许你已经通过仅使用import datetime导入了模块,所以将from datetime import datetime更改为仅import datetime。我把它改回来后,它对我有用。

import time
import datetime
from datetime import date,timedelta

你必须从datetime导入datetime

避免写作:

from datetime import datetime
datetime.datetime.function()

解决方案1:

import datetime
datetime.datetime.function()

解决方案2:

from datetime import datetime
datetime.function()

问题是你在使用标签

from datetime

我有同样的问题,你需要这样使用它

import datetime

删除一个datetime:

date = datetime.datetime(int(year), int(month), 1)

你会得到这个:

date = datetime(int(year), int(month), 1)

你已经导入了第一个:

from datetime import datetime

所以它是冗余的。