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

Python日期格式转换问题:将MM/DD/YY转为星期,月日,年格式

问题分析与修正方案

你的代码核心问题是格式化操作只在if条件成立时执行:如果输入的生日是过去的日期(不满足birthday > datetime.now()),birthday仍然是datetime对象,print时会输出它的默认格式「年-月-日 时:分:秒」。另外还有一个入门易忽略的点:代码没导入datetime模块,运行会直接报错。

修正后的代码

import datetime

birthday = input("Enter Birthday (MM/DD/YY): ")
# 将输入字符串解析为datetime对象
birthday = datetime.datetime.strptime(birthday, "%m/%d/%y")

# 修正年份:如果解析出的日期在当前时间之后,说明是上世纪的年份
if birthday > datetime.datetime.now():
    fixed_birth_year = birthday.year - 100
    birthday = datetime.datetime(birthday.month, birthday.day, fixed_birth_year)

# 统一对所有情况的日期进行格式化
formatted_birthday = datetime.datetime.strftime(birthday, "%A, %B %d, %Y")
print("Birthday: ", formatted_birthday)

关键说明

  • 必须导入模块:所有datetime相关操作都需要先通过import datetime引入模块,否则会触发NameError
  • 统一格式化逻辑:把strftime格式化步骤移到if块外面,不管是否需要修正年份,最终都会把datetime对象转换成你需要的「星期几,月份 日期,年份」格式的字符串
  • 年份修正逻辑保留:原代码里判断日期是否在当前时间之后、减100年的逻辑是合理的——比如输入06/01/24,如果当前时间是2024年5月,这个日期属于未来,就会自动修正为1924年

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:50:38