Python获取时间范围
2019-05-18 本文已影响0人
虚白无类
遇到一个场景需要获得一段时间的日期,觉得datetime写起来不够explicit, 如下。
start_date = datetime.datetime.today()
date_list = [start_date - datetime.timedelta(days=x) for x in range(0, days_num)]
然后找了一下,发现有很多好用的方法(时间库),记录一下
- pandas.date_range
import pandas as pd
datelist = pd.date_range(pd.datetime.today(), periods=100).tolist()
- dateutil.rrule
rrule可计算出两个datetime对象间相差的年月日等时间数量。
from dateutil import rrule
from datetime import datetime
list(rrule.rrule(rrule.DAILY,count=100,dtstart=datetime.now()))
- matplotlib.dates.drange
from matplotlib.dates import drange
import datetime
base = datetime.date.today()
end = base + datetime.timedelta(days=100)
delta = datetime.timedelta(days=1)
l = drange(base, end, delta)
- dateutil.relativedelta
import datetime as dt
from dateutil.relativedelta import relativedelta
def month_range(start_date, n_months):
for m in range(n_months):
yield start_date + relativedelta(months=+m)
- arrow.Arrow.range()
这个库还有floor方法很好用
from arrow.Arrow import range
date_range = range('hour',datetime_start, datatime_end)
这个库用的人较少,但也很神奇,文档也很好看
import pendulum
start = pendulum.datetime(2000, 1, 1)
end = pendulum.datetime(2000, 1, 10)
date_range = pendulum.period(start, end).range('days')
参考: