类型对象“datetime.datetime”没有属性“datetime”
- 2025-03-13 09:23:00
- admin 原创
- 11
问题描述:
我收到以下错误:
类型对象“datetime.datetime”没有属性“datetime”
在下面一行:
date = datetime.datetime(int(year), int(month), 1)
有人知道错误的原因吗?
我导入了日期时间,from datetime import datetime
如果有帮助的话
谢谢
解决方案 1:
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
。
解决方案 2:
对于 Python 3.3
from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)
解决方案 3:
您确实应该将模块导入到它自己的别名中。
import datetime as dt
my_datetime = dt.datetime(year, month, day)
与其他解决方案相比,上述解决方案具有以下优点:
调用变量
my_datetime
而不是可以减少混淆,因为在 datetime 模块中date
已经有一个( )。date
`datetime.date`模块和类(均称为
datetime
)不会互相遮蔽。
解决方案 4:
你应该使用
date = datetime(int(year), int(month), 1)
或者改变
from datetime import datetime
到
import datetime
解决方案 5:
如果您使用过:
from datetime import datetime
然后只需将代码写如下:
date = datetime(int(year), int(month), 1)
但如果你使用过:
import datetime
那么只有你可以写:
date = datetime.datetime(int(2005), int(5), 1)
解决方案 6:
我遇到了同样的错误,也许您已经使用 only 导入了模块,import datetime
因此更改 from datetime import datetime
为 only import datetime
。 我将其改回来后,它对我有用。
解决方案 7:
import time
import datetime
from datetime import date,timedelta
您必须datetime
从导入datetime
。
解决方案 8:
避免写:
from datetime import datetime
datetime.datetime.function()
解决方案1:
import datetime
datetime.datetime.function()
解决方案2:
from datetime import datetime
datetime.function()
解决方案 9:
我发现这容易多了
from dateutil import relativedelta
relativedelta.relativedelta(end_time,start_time).seconds
解决方案 10:
您可以简单地运行以下命令。
导入日期时间
datetime.fromtimestamp(details.start_date).strftime("%Y-%m-%d %H:%M:%S")
解决方案 11:
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)
解决方案 12:
从中删除一个日期时间:
date = datetime.datetime(int(year), int(month), 1)
你会得到这个:
date = datetime(int(year), int(month), 1)
您已经用这个导入了第一个:
from datetime import datetime
所以它是多余的。
解决方案 13:
我试过 :
import datetime
from datetime import timedelta
并且它起了一定作用
解决方案 14:
您应该使用 dt.datetime 而不是 datetime.datetime。它的效果非常好,如下例所示:
import datetime as dt
from datetime import datetime,timedelta
string_date1="2023-11-22"
date1=dt.datetime.strptime(string_date1, "%Y-%m-%d").date()
print(date1)
string_added_days="14";added_days=dt.timedelta(days=int(string_added_days))
print(added_days)
date_in_future=date1+added_days
print(date_in_future)
解决方案 15:
from datetime import datetime, timedelta, timezone
print(datetime.today() - datetime.timedelta(days=int(15)))
这将导致错误,例如类型对象“datetime.datetime”没有属性“timedelta”。
使用下面的方法即可:
from datetime import datetime, timedelta, timezone
print(datetime.today() - timedelta(days=int(15)))
解决方案 16:
问题是你正在使用标签
from datetime
我有同样的问题你需要这样使用它
import datetime