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")?当然,应该有一种方法可以解决这些问题,而不必考虑如何实现工作日?
使用
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的时间差有时会在两个月后解雇你。