排查“描述符'date'需要'datetime.datetime'对象但接收到了'int'”问题
在我的代码中,我让用户输入一个日期,格式是 dd/mm/yyyy
。
currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ")
day,month,year = currentdate.split('/')
today = datetime.date(int(year),int(month),int(day))
这段代码返回了一个错误:
类型错误:描述符 'date' 需要一个 'datetime.datetime' 对象,但收到了一个 'int'。
如果我去掉 int()
,那么我会遇到同样的错误,只不过这次它说收到了一个 'str'
。
我到底哪里出错了呢?
8 个回答
14
如果你已经有了
from datetime import datetime
那么你可以这样构建:
christmas = datetime(2013,12,25)
57
你是这样导入的吗?
from datetime import datetime
那么你需要把它改成这样:
import datetime
解释一下:在第一种情况下,你实际上是在调用 datetime.datetime.date()
,这是在 datetime
模块里的 datetime
对象上的一个方法。而在后面的情况下,你是用构造函数 datetime.date()
创建了一个新的 date()
对象。
另外,你也可以把导入改成:
from datetime import datetime, date
然后可以用 date(y,m,d)
来构造(不需要加 datetime.
前缀)。
71
看起来你导入的是 datetime.datetime
模块,而不是 datetime
。不过这样也应该能正常工作:
import datetime
currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ")
day,month,year = currentdate.split('/')
today = datetime.date(int(year),int(month),int(day))
..或者这样:
from datetime import date
currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ")
day,month,year = currentdate.split('/')
today = date(int(year),int(month),int(day))