You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

日期比较异常:Python中Oct 2022与Feb 2023字符串比较结果错误

问题分析与解决
  • 问题根源:你把解析后的datetime对象又转成了字符串'10.2022'和'02.2023',字符串比较是逐字符按ASCII码值对比的。'1'的ASCII码比'0'大,所以'10.2022' > '02.2023'会返回True,但这和实际日期的先后逻辑完全不符。

  • 正确做法:保留datetime.datetime对象直接比较,不要转成字符串。修改代码如下:

import datetime

# 假设master_list[0][1]是'10-2022',master_list[0][2]是'02-2023'
a_date = datetime.datetime.strptime(master_list[0][1], '%m-%Y')
b_date = datetime.datetime.strptime(master_list[0][2], '%m-%Y')

# 直接比较datetime对象
print(a_date > b_date)  # 输出False,符合预期
  • 补充说明:如果后续需要按%m.%Y格式展示日期,可以在比较完成后再调用strftime()转换,不要在比较前转换。比如:
date_format = '%m.%Y'
a_display = a_date.strftime(date_format)  # 得到'10.2022'
b_display = b_date.strftime(date_format)  # 得到'02.2023'

内容的提问来源于stack exchange,提问作者naruto1996

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:25:26