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

如何在Python 2.7中将带'th'的日期转换为可比较日期格式?

不用升级Python 2.7也能搞定日期格式转换!

嘿,我明白你的困扰——不想升级Python版本又要处理这种带序数词的日期字符串对吧?完全可以用Python标准库搞定,不用依赖dateutil,下面是具体的实现方法:

核心思路

  1. 先把日期里的序数后缀(比如st/nd/rd/th)去掉,因为Python的strptime默认不识别这些后缀
  2. 用标准库datetime解析处理后的字符串
  3. 再格式化为你需要的YYYY-MM-DD格式

具体代码实现

import re
from datetime import datetime

def convert_ordinal_date(date_str):
    # 用正则表达式去掉日期中的序数后缀
    cleaned_date = re.sub(r'(\d+)(st|nd|rd|th)', r'\1', date_str)
    # 解析清洗后的日期字符串
    parsed_date = datetime.strptime(cleaned_date, '%A, %B %d, %Y')
    # 格式化为目标格式
    return parsed_date.strftime('%Y-%m-%d')

# 测试一下
test_date = "Saturday, May 18th, 2019"
print(convert_ordinal_date(test_date))  # 输出: 2019-05-18

代码解释

  • 正则表达式r'(\d+)(st|nd|rd|th)'会匹配所有带序数后缀的数字,替换成纯数字,比如把18th变成18
  • strptime的格式符:%A对应星期全名(比如Saturday),%B对应月份全名(比如May),%d对应两位日期,%Y对应四位数年份
  • 最后用strftime('%Y-%m-%d')把解析后的日期对象转成你需要的格式

这个方案完全基于Python 2.7的标准库,不需要安装任何第三方包,刚好适配你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:36:51