Python字符串转日期格式报错求助:sre_constants.error问题
解决字符串转YYYY-MM-DD日期格式的问题
嘿,这个报错的原因很明确——你写的代码里有两个关键问题:
- 重复使用了同一个格式占位符
%Y:你的格式字符串'%m %d %Y %I:%Y%m%d'里出现了两次%Y,而strptime不允许重复定义同一个命名组(这里的%Y对应正则逻辑里的命名组),所以抛出了redefinition of group name 'Y'的错误。 - 格式字符串和输入字符串完全不匹配:你的输入是
"April 18, 2018"(完整月份名+日期+年份),但格式字符串写的是%m(数字月份)、%I(12小时制小时)这些和输入无关的占位符,就算没有重复占位符的问题,也会解析失败。
正确的解决步骤
我们需要先用匹配输入格式的占位符解析字符串,再将解析后的时间元组格式化为你需要的YYYY-MM-DD格式:
import time review_date = "April 18, 2018" # 第一步:解析输入字符串为时间元组,用%B匹配完整月份名,%d匹配日期,%Y匹配四位年份 parsed_time = time.strptime(review_date, '%B %d, %Y') # 第二步:将时间元组格式化为YYYY-MM-DD格式 formatted_date = time.strftime('%Y-%m-%d', parsed_time) print(formatted_date) # 输出结果:2018-04-18
关键格式占位符说明
%B:匹配完整的英文月份名称(比如April、January)%d:匹配带前导零的两位日期(如果输入是April 8, 2018这种单数字日期,%d也能正常解析)%Y:匹配四位年份(比如2018)
这样就能顺利把你的输入字符串转换成想要的YYYY-MM-DD格式啦!
内容的提问来源于stack exchange,提问作者jhaywoo8
相关产品推荐
相关产品推荐

