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

如何校验用户输入日期是否符合MM/DD/YYYY格式?代码异常排查

日期格式校验代码问题修复

你的代码存在两个核心问题,导致无论输入是否正确都会提示格式错误:

  • 缺少异常处理:datetime.strptime(date, '%m/%d/%Y') 会在输入不符合格式时直接抛出ValueError,程序会直接崩溃,根本走不到后续的判断逻辑。
  • 循环逻辑错误:你拿用户输入的日期字符串和格式字符串'%m/%d/%Y'做比较,这两者永远不可能相等,所以不管输入对不对都会进入循环提示错误,再加上break直接终止循环,等于完全没起到校验作用。

下面是修正后的代码,能实现正确的格式校验,直到用户输入符合要求为止:

from datetime import datetime

while True:
    date = input("Please enter a date in the following format MM/DD/YYYY: ")
    try:
        # 尝试按指定格式解析日期
        datetime.strptime(date, '%m/%d/%Y')
        print("日期格式正确!")
        break  # 格式正确则退出循环
    except ValueError:
        # 解析失败时提示错误,让用户重新输入
        print("格式错误,请按照MM/DD/YYYY的格式输入日期")

核心改进说明:

  • 用try-except捕获解析异常,这是校验日期格式的标准可靠做法
  • 用while True实现循环输入逻辑,直到用户输入正确格式才退出
  • 移除了无意义的格式字符串比较逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:52:04