Python报错 | TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'

报错信息

使用python创建一个datetime.data类的时候,报如下错误:

TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'

错误原因

报错翻译过来是:

提示" TypeError:描述符'date'需要一个'datetime.datetime'对象,但收到了一个'int'

您可能导入了:

from datetime import datetime

也就是说,名称datetime将引用表示日期和时间的类datetime(从datetime模块导入,该模块令人讨厌的是,具有相同的名称)。

然后,date是一种检索datetime对象的日期部分的方法:

In [4]: my_date = datetime(2015,5,7,20,02,00)
In [5]: my_date.date()
In [6]: datetime.date(2015, 5, 7)

因此,如果使用一个或多个整数参数进行调用,则会报错:

In [7]: datetime.date(999)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-55d65eb13663> in <module>()
----> 1 datetime.date(999)

TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'

在这种情况下,datetime.datedatetime对象的方法,并且不知道如何处理999。以下是等效的:

In [8]: datetime.date(my_date)
Out[8]: datetime.date(2015, 5, 7)

In [9]: my_date.date()
Out[9]: datetime.date(2015, 5, 7)

如果导入datetime模块,则可以执行所需操作,因为date也是该模块中的类的名称(用于表示没有小时,分钟等的日期):

In [1]: import datetime
In [2]: datetime.date(2015, 5, 7)    # OK, returns a date object

解决方案

1、使用from datetime import date

2、使用import datetime

posted @   张Zong在修行  阅读(723)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示