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

如何从字符串创建datetime对象?strptime格式匹配报错如何解决

问题根因
  • 字符串my_string用_拆分后得到的数组为['London', 'XX65TR', '20211116', '112413.txt'],你取索引为2的元素仅包含20211116,和格式串要求的年日月_时分秒结构不符,触发值错误
  • 拆分后索引为3的元素包含时间信息,但附带.txt后缀需要先清理
  • 额外注意:不要用datetime作为变量名,会覆盖你导入的datetime模块,后续调用模块方法会报错
修复方案

方案1:拆分拼接法(适合字符串结构固定的场景)

import datetime

my_string = 'London_XX65TR_20211116_112413.txt'
parts = my_string.split('_')
# 拼接日期和时间部分,同时去掉末尾的.txt后缀
time_str = f"{parts[2]}_{parts[3].removesuffix('.txt')}"
dt_obj = datetime.datetime.strptime(time_str, '%Y%m%d_%H%M%S')
# 输出结果为 2021-11-16 11:24:13

方案2:正则提取法(适合字符串结构不固定的场景)

如果前后前缀内容、长度会变化,用正则匹配固定格式的时间串更稳妥:

import re
import datetime

my_string = 'London_XX65TR_20211116_112413.txt'
# 匹配8位数字+下划线+6位数字的时间格式
time_str = re.search(r'(\d{8}_\d{6})', my_string).group(1)
dt_obj = datetime.datetime.strptime(time_str, '%Y%m%d_%H%M%S')

内容的提问来源于stack exchange,提问作者Al-Andalus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:45:05