Python中如何从起止日期字符串生成连续日期数组
从日期范围字符串生成连续日期数组
给定字符串 period = "2022-09-12/2022-09-15",要生成包含这段时间内所有日期的数组,可以用以下两种方法实现:
方法一:使用Python标准库datetime
无需额外安装依赖,适合轻量场景:
- 分割日期字符串,提取起始和结束日期的字符串形式
- 将字符串转换为
date对象,方便日期计算 - 计算起始到结束的天数差,循环生成每一天的日期并转为指定格式的字符串
完整代码:
from datetime import datetime, timedelta period = "2022-09-12/2022-09-15" # 分割起始和结束日期字符串 start_str, end_str = period.split('/') # 转换为date对象 start_date = datetime.strptime(start_str, '%Y-%m-%d').date() end_date = datetime.strptime(end_str, '%Y-%m-%d').date() # 生成连续日期数组 arr = [] current_date = start_date while current_date <= end_date: arr.append(current_date.strftime('%Y-%m-%d')) current_date += timedelta(days=1) print(arr) # 输出: ['2022-09-12', '2022-09-13', '2022-09-14', '2022-09-15']
方法二:使用pandas(适合数据处理场景)
如果你的项目已经在使用pandas,这个方法更简洁:
import pandas as pd period = "2022-09-12/2022-09-15" start_str, end_str = period.split('/') # 生成日期范围并转为字符串数组 arr = pd.date_range(start=start_str, end=end_str).strftime('%Y-%m-%d').tolist() print(arr) # 输出: ['2022-09-12', '2022-09-13', '2022-09-14', '2022-09-15']
内容的提问来源于stack exchange,提问作者Diepdang
相关产品推荐
相关产品推荐

