‘>’ 在 ‘datetime.datetime’ 和 ‘str’ 的实例之间不受支持

‘>’ 在 ‘datetime.datetime’ 和 ‘str’ 的实例之间不被支持

‘>’ not supported between instances of ‘datetime.datetime’ and ‘str’

当我们尝试比较日期时间对象和字符串时,会出现 Python“TypeError: ‘>’ not supported between instances of ‘datetime.datetime’ and ‘str’”。

要解决该错误,请strptime()在比较之前使用该方法将字符串转换为日期时间对象。

datetime datetime 和 str 实例之间不支持类型错误

下面是错误如何发生的示例。

主程序
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,请查看

官方文档的
此表。