‘>’ 在 ‘datetime.datetime’ 和 ‘str’ 的实例之间不被支持
‘>’ not supported between instances of ‘datetime.datetime’ and ‘str’
当我们尝试比较日期时间对象和字符串时,会出现 Python“TypeError: ‘>’ not supported between instances of ‘datetime.datetime’ and ‘str’”。
要解决该错误,请strptime()
在比较之前使用该方法将字符串转换为日期时间对象。
下面是错误如何发生的示例。
主程序
from datetime import datetime today = datetime.today() print(today) # 👉️ "2023-01-31 21:13:54.657244" dt = "2026-09-01 16:32:33" # ⛔️ TypeError: '>' not supported between instances of 'datetime.datetime' and 'str' print(today > dt)
我们在导致错误的不兼容类型( datetime
object 和)的值之间使用了比较运算符。str
使用该strptime
方法将字符串转换为日期时间对象
要解决错误,我们必须使用strptime()
将字符串转换为datetime
对象的方法。
主程序
from datetime import datetime today = datetime.today() print(today) # 👉️ "2023-01-31 21:14:38.966391" # ✅ convert date string to a datetime object dt = datetime.strptime( "2026-09-01 16:32:33", "%Y-%m-%d %H:%M:%S" ) print(dt) # 👉️ "2026-09-01 16:32:33" print(today > dt) # 👉️ False
比较运算符左右两侧的值必须是兼容类型。
datetime.strptime
()
方法返回一个datetime
对象,该对象对应于提供的日期字符串,根据格式进行解析。
主程序
from datetime import datetime d = '2022-11-24 09:30:00.000123' # 👇️ convert string to datetime object datetime_obj = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') # 👇️ Thursday, 24. November 2022 09:30AM print(datetime_obj.strftime("%A, %d. %B %Y %I:%M%p"))
该strptime()
方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
日期字符串 | 要转换为datetime 对象的日期字符串 |
格式 | 应该用于将日期字符串解析为datetime 对象的格式字符串 |
有关该方法支持的格式代码的完整列表strptime
,请查看
官方文档的此表。
将另一个字符串转换为日期时间对象
下面是转换使用不同格式的字符串的示例。
主程序
from datetime import datetime today = datetime.today() print(today) # 👉️ "2023-01-31 21:15:38.561163" dt = datetime.strptime("2026/11/24 09:30", "%Y/%m/%d %H:%M") print(dt) # 👉️ 2026-11-24 09:30:00 print(today < dt) # 👉️ True
为了让我们能够比较这些值,它们都必须是datetime
对象。
有关该方法支持的格式代码的完整列表strptime
,请查看
官方文档的此表。