首页 > 解决方案 > TypeError:“datetime.datetime”对象的描述符“日期”不适用于“int”对象

问题描述

我刚遇到这个问题,在谷歌首页找不到合理的答案。它类似于2011 中提出的这个问题,但对于较新版本的 Python,这会导致不同的错误消息。

是什么导致这些TypeErrors?

整数

import datetime
my_date = datetime.datetime.date(2021, 3, 2) 

导致错误:

TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'int' object

字符串

同样,用字符串替换整数也会产生相同的错误:

import datetime
my_date = datetime.datetime.date("2021", "3", "2") 

给出:

TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'str' object

列表

并且使用列表会给出相同的错误:

import datetime
my_date = datetime.datetime.date([2021, 3, 2]) 

结果是:

TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'list' object

同样,使用from datetime import datetimedatetime.date将分别导致以下错误消息:

TypeError: descriptor 'date' for 'datetime' objects doesn't apply to a 'int' object
TypeError: descriptor 'date' for 'datetime' objects doesn't apply to a 'str' object
TypeError: descriptor 'date' for 'datetime' objects doesn't apply to a 'list' object

标签: pythonpython-3.xdatetime

解决方案


解决方案:

import datetime
my_date = datetime.date(2021, 3, 2)

或者

from datetime import date
my_date = date(2021, 3, 2)

为什么?

问题是对象datetime.datetime.date()的方法。我们将模块与类混淆了。datetime.datetimedatetimedatetime.datetime

我们真正要寻找的是datetime.date()构造函数


推荐阅读