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

Python中使用strptime转换时间字符串报ValueError的问题排查

解决datetime.strptime转换报错的问题

你的代码报错主要有两个核心点:

  • 格式符使用错误:你用了小写的%y,但输入的是4位年份2022,%y仅匹配两位年份(比如22),4位年份必须用大写的%Y
  • 错误信息里的2022-09-31本身是无效日期(9月只有30天),不过这是次要问题,先解决格式匹配就能正常转换

修正后的代码如下:

from datetime import datetime

stg = "2022-10-31-01:17:46"
do = datetime.strptime(stg, '%Y-%m-%d-%H:%M:%S')
print(do)  # 输出:2022-10-31 01:17:46

关于你疑惑的自定义格式问题:strptime完全支持自定义分隔符的格式,不管是用空格、连字符还是其他符号分隔日期和时间,只要格式符和字符串的每个部分类型对应上就可以。比如你要的%Y-%m-%d-%H:%M:%S这种格式是完全合法的,核心是格式符的大小写和类型要匹配内容(比如年份的%Y/%y,小时的%H(24小时制)/%I(12小时制)等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:05:22