从 Python 中的 datetime.date 对象检索日期时出错

Error when retrieving Date from datetime.date object in Python

我想从 datetime.date 对象中以 "May 01 2009" 的格式检索日期。我有一个 table 存储在 MySQL 数据库中。它分别有日期列和时间列。 table 中的日期格式为

2009-05-01

我已经使用 PyMySQL 模块连接到 MySQL 服务器,

conn = pymysql.connect("localhost", "root", "cloudera", "streaming")
cursor = conn.cursor()
sql = "select * from table1 limit 5;"
cursor.execute(sql)
row = cursor.fetchone()
row[0]

输出是,

datetime.date(2009, 5, 1)

当我尝试使用下面的命令以我想要的方式提取日期时,

datetime.date.strftime("%b %d %Y", row[0])

我得到一个错误,

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

我只是不明白,当提供 datetime.date 对象时,它会引发错误。 谁能帮帮我吗。提前致谢。

strftimedate对象的实例方法,不是单独的函数:

print(row[0].strftime("%b %d %Y"))

错误消息试图告诉您您正在直接从 date class 调用未实例化的方法(描述符),而没有将实例作为第一个参数传递。

有关更多信息,请查看 date objects documentation

这是一个 datetime.date 对象。它有一个 str() 方法可以解决你的问题。

import datetime
date=datetime.date(2009,5,1)
datetime.date(2009, 5, 1)
str(d)

结果为 '2009-05-01'