python - 类型错误 : descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'int' object

标签 python python-3.x datetime

我刚刚遇到这个问题,在谷歌的首页上找不到合理的答案。它类似于 this question asked in 2011 ,但对于较新版本的 Python,这会导致不同的错误消息。
是什么导致这些TypeError ?
整数

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

最佳答案

解决方案:

import datetime
my_date = datetime.date(2021, 3, 2)
或者
from datetime import date
my_date = date(2021, 3, 2)
为什么?
问题是 datetime.datetime.date() is a method datetime.datetime object .我们混淆了 datetime带有 datetime.datetime 的模块类(class)。
我们真正要找的是 datetime.date() constructor .

关于python - 类型错误 : descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'int' object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66431493/

相关文章:

python - 如何计算 pandas dataframe 中 500 个最常见的单词

java - Visual FoxPro如何处理日期计算? (来自java)date()-day(date())+1操作的结果?

python - 如何自动获取本地时区的时区偏移量?

python - 如何在 python 中按分类顺序排序月份,即一月、二月、三月等......?

python - 次要情节标题与情节主标题位于同一位置

python - VS代码无法导入已安装的模块

python - 如何将以下嵌套的 dict 列表解压缩为元组?

Python 如果字符串包含在 href 中

python - 评估 python 中的 for 循环,包含带有嵌入 for 循环的数组

mysql - 按日期时间排序 mysql