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

如何用原生Python从字符串中提取两个日期并计算间隔天数?

原生Python提取双日期并计算间隔天数方案

嘿,完全不用愁,咱们用Python自带的工具就能搞定这个需求,不用装任何额外包~

步骤1:拆分字符串并提取日期

你的字符串是用下划线_分隔的,所以首先可以用split('_')把它拆分成列表,然后从中找出那两个8位的日期字符串。这里有两种思路:

思路A:针对固定格式直接提取

如果你的字符串格式永远像示例那样(日期在第3和第4个位置,索引从0开始的话就是[2]和[3]),那可以直接通过索引取值,简单高效:

s = "o4_24d_20170708_20170801"
parts = s.split('_')
date_str1 = parts[2]
date_str2 = parts[3]

思路B:通用筛选(适配格式有变化的情况)

如果字符串格式可能有变动,但日期都是8位数字,那可以遍历拆分后的列表,筛选符合条件的元素:

s = "o4_24d_20170708_20170801"
parts = s.split('_')
date_strs = [part for part in parts if len(part) == 8 and part.isdigit()]
# 这里date_strs会是包含两个日期的列表,顺序和原字符串一致
date_str1, date_str2 = date_strs

步骤2:转换为datetime对象并计算间隔

接下来用datetime模块把字符串转成日期对象,然后直接相减就能得到天数差:

from datetime import datetime

# 把日期字符串转成datetime对象
date1 = datetime.strptime(date_str1, '%Y%m%d')
date2 = datetime.strptime(date_str2, '%Y%m%d')

# 计算间隔天数,注意取绝对值避免顺序问题
days_diff = abs((date2 - date1).days)

完整示例代码

把上面的步骤整合起来,就是一个完整的可运行代码:

from datetime import datetime

s = "o4_24d_20170708_20170801"

# 拆分字符串提取日期
parts = s.split('_')
date_str1 = parts[2]
date_str2 = parts[3]

# 转换为日期对象
date1 = datetime.strptime(date_str1, '%Y%m%d')
date2 = datetime.strptime(date_str2, '%Y%m%d')

# 计算间隔天数
days_diff = abs((date2 - date1).days)

# 验证结果(示例中20170708到20170801是24天,和原字符串里的24d对应)
print(f"两个日期间隔:{days_diff}天")

这样就能轻松提取两个日期并算出间隔啦,完全用的是Python原生功能,符合你的公司限制~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:41:46