给定两个日期,我想使用 datetime 从稍后的日期开始,生成一个具有固定时间长度的日期列表。
例如,在给定01/01/2018
和01/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天一个月都会返回错误。
答案 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
您可以在此处对日期/时间的特定部分执行操作...