190

我收到以下错误:

类型对象“datetime.datetime”没有属性“datetime”

在以下行:

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

有人知道错误的原因吗?

from datetime import datetime如果有帮助,我导入了日期时间

谢谢

4

9 回答 9

311

Datetime 是一个允许处理日期、时间和日期时间(所有这些都是数据类型)的模块。这意味着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.

于 2012-10-16T01:50:18.000 回答
132

对于python 3.3

from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)
于 2013-10-31T05:48:22.963 回答
20

你应该使用

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

或者改变

from datetime import datetime

import datetime
于 2012-10-16T01:51:04.020 回答
18

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

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

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

  • 调用变量my_datetime而不是减少混淆,因为在 datetime 模块 ( )date中已经存在 a 。datedatetime.date
  • 模块和类(都称为datetime)不会相互影响。
于 2018-02-16T12:41:19.310 回答
4

如果您使用过:

from datetime import datetime

然后只需将代码编写为:

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

但是,如果您使用过:

import datetime

那么只有你可以写:

date = datetime.datetime(int(2005), int(5), 1)
于 2017-07-12T07:25:19.200 回答
3

我遇到了同样的错误,也许您已经使用 only 导入了模块,import datetime因此更改 from datetime import datetime为 only import datetime。我改回来后它对我有用。

于 2020-05-13T22:51:15.400 回答
1

我发现这要容易得多

from dateutil import relativedelta
relativedelta.relativedelta(end_time,start_time).seconds
于 2018-05-09T09:37:00.557 回答
1
import time
import datetime
from datetime import date,timedelta

您必须datetimedatetime.

于 2021-04-13T07:32:41.867 回答
-2
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)
于 2020-03-30T07:14:32.963 回答