使用strptime函数实现出生日期前一天查询时遇错误求助
问题原因与修复方案
你的错误核心是日期输入格式和代码指定的解析格式不匹配:
代码里用datetime.strptime(birth_date_str, "%Y-%m-%d")要求输入的日期为YYYY-MM-DD(横杠分隔),但你实际输入的是YYYY/MM/DD(斜杠分隔),因此触发了ValueError: time data 'xxx' does not match format '%Y-%m-%d'错误。
快速修复方案
任选其一即可:
- 严格按照代码要求的格式输入日期,比如输入
2000-01-01而非2000/01/01 - 修改代码中的格式匹配字符串,把
"%Y-%m-%d"替换成"%Y/%m/%d",让代码适配斜杠分隔的输入
适配斜杠输入的修正代码
from datetime import datetime, timedelta birth_date_str = input("请输入出生日期(格式:YYYY/MM/DD):") birth_date = datetime.strptime(birth_date_str, "%Y/%m/%d") previous_day = birth_date - timedelta(days=1) print("出生日期的前一天是:", previous_day.strftime("%Y/%m/%d"))
内容的提问来源于stack exchange,提问作者adkins77
相关产品推荐
相关产品推荐

