关于pandas:python datetime:如何获取下一个句点(使用别名,如’D’,’M’)

python datetime: How to get next period (using aliases such as 'D', 'M')

本问题已经有最佳答案,请猛点这里访问。

有没有办法从一个日期到下一个周期?也就是说,我正在寻找一个可以

1
now = datetime.datetime(2013, 11, 15, 0, 0)

1
2
next(now, 'D') = datetime.datetime(2013, 11, 16, 0, 0) #moving to next day
next(now, 'M') = datetime.datetime(2013,12,31) #moving to next month (day doesn't matter really)

我试过使用day和montend,从pandas.tseries.offsets,但montend将转换为给定月份的montend,而不是下个月。有什么简单的方法可以做到吗?

编辑:我知道这几个月很容易。或者几天。问题是,如果我决定使用工作日(别名"b"),该怎么办?还是BusinessMonthend("BM")?当然,应该有一种方法可以解决这些问题,而不必考虑如何实现工作日?


使用dateutil怎么样,像这样:

1
2
3
4
5
from datetime import date
from dateutil.relativedelta import relativedelta

one_day = date.today() + relativedelta (days =+ 1)
one_month = date.today() + relativedelta( months =+ 1 )

您应该尝试TimeDelta对象。

找到第二天很容易,因为你只需要增加24小时:

1
next=now+datetime.timedelta(hours=24)

下周和days=7一样简单,但是下个月有点棘手,因为days=31的时间差有时会在两个月后解雇你。