Python-将一个时间段分成多个固定长度的时间段

时间:2018-10-30 14:06:51

标签: python date datetime

给定两个日期,我想使用 datetime 从稍后的日期开始,生成一个具有固定时间长度的日期列表。 例如,在给定01/01/201801/09/2018且时间间隔为2个月的情况下,输出为:

[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]

我不能只对{em> datetime 对象使用.replace方法减去数月,因为从31天到30天一个月都会返回错误。

2 个答案:

答案 0 :(得分:2)

我认为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']

答案 1 :(得分:0)

您确实指定了 datetime ,但如果您有兴趣,
time.localtime对象可以这样分解:

import time

secSinceEpoch = time.time()
currentTime = time.localtime(secSinceEpoch)
month = currentTime.tm_mon
day = currentTime.tm_mday
year = currentTime.tm_year
hour = currentTime.tm_hour
min = currentTime.tm_min
sec = currentTime.tm_sec

您可以在此处对日期/时间的特定部分执行操作...