从 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 对象时,它会引发错误。
谁能帮帮我吗。提前致谢。
strftime
是date
对象的实例方法,不是单独的函数:
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'
我想从 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 对象时,它会引发错误。 谁能帮帮我吗。提前致谢。
strftime
是date
对象的实例方法,不是单独的函数:
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'