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

Python 3中如何验证格式为2018-05-30-16-54-00的日期时间?

问题分析与解决办法

你遇到的问题很明确——代码里用的日期格式字符串和你实际传入的日期格式完全不匹配!

你的输入日期是2018-05-30-16-54-00,也就是YYYY-MM-DD-HH-MM-SS的格式,但你代码里写的%d-%b-%Y-%H-%M-%S对应的是日-英文缩写月份-年-时-分-秒(比如30-May-2018-16-54-00),这俩完全对不上,自然会触发ValueError。

咱们把代码修正一下,把格式字符串改成和输入匹配的就行:

from datetime import datetime

def validate(date_text):
    try:
        # 格式字符串对应YYYY-MM-DD-HH-MM-SS
        datetime.strptime(date_text, '%Y-%m-%d-%H-%M-%S')
    except ValueError:
        raise ValueError("Incorrect data format, should be YYYY-MM-DD-HH-MI-SS")

这里给你拆解一下每个格式符的含义,方便你以后调整:

  • %Y:4位数字的年份(比如2018)
  • %m:2位数字的月份(01-12,对应例子里的05)
  • %d:2位数字的日期(01-31,对应例子里的30)
  • %H:24小时制的2位小时数(00-23,对应例子里的16)
  • %M:2位数字的分钟(00-59,对应例子里的54)
  • %S:2位数字的秒数(00-59,对应例子里的00)

你可以测试一下:

# 正确格式,不会报错
validate("2018-05-30-16-54-00")

# 错误格式,会抛出预期的ValueError
validate("2018/05/30 16:54:00")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:05:33