Python

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

然后找了一下,发现有很多好用的方法(时间库),记录一下

  1. pandas.date_range
import pandas as pd
datelist = pd.date_range(pd.datetime.today(), periods=100).tolist()
  1. dateutil.rrule
    rrule可计算出两个datetime对象间相差的年月日等时间数量。
from dateutil import rrule
from datetime import datetime

list(rrule.rrule(rrule.DAILY,count=100,dtstart=datetime.now()))
  1. 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)
  1. 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)
  1. arrow.Arrow.range()
    这个库还有floor方法很好用
from arrow.Arrow import range

date_range = range('hour',datetime_start, datatime_end)
  1. pendulum

这个库用的人较少,但也很神奇,文档也很好看

import pendulum

start = pendulum.datetime(2000, 1, 1)
end = pendulum.datetime(2000, 1, 10)
date_range = pendulum.period(start, end).range('days')

参考:

上一篇下一篇

猜你喜欢

热点阅读