首页 > 解决方案 > Python - 将一个时间段拆分为多个固定长度的时间段

问题描述

给定两个日期,我想使用datetime生成一个彼此之间具有固定时间长度的日期列表,从较晚的日期开始。例如,给定2 个月01/01/201801/09/2018时间间隔,输出将是:

[01/01/2018, 01/03/2018, 01/05/2018, 01/07/2018, 01/09/2018]

间隔3个月:

[01/03/2018, 01/06/2018, 01/09/2018]

我不能只使用datetime.replace对象上的方法减去月份,因为从 31 天的月份到 30 天的月份会返回错误。

标签: pythondatedatetime

解决方案


我认为relativedeleta模块可以帮助你 -pip install python-dateutil

from dateutil.relativedelta import *
import datetime
date1 = datetime.datetime.strptime('01/01/2018', "%d/%m/%Y").date()
date2 = datetime.datetime.strptime('01/09/2018', "%d/%m/%Y").date()
f = [(date1 + relativedelta(months=i)).strftime("%d/%m/%Y") for i in range(date1.month, date2.month,2)]

结果将是 - ['01/02/2018', '01/04/2018', '01/06/2018', '01/08/2018']


推荐阅读