我想要获得给定范围内的月份列表。具体来说,给定的范围2015-12-31 - 2016-01-01
,我想获得列表2015-12
和2016-01
。如何创建日期范围,直到包含python dateutils的日期?
我使用的是dateutil的rrule,但until
参数并没有真正的帮助,因为它似乎在寻找完整的月份。
例如为:
from dateutil.relativedelta import relativedelta
from dateutil.rrule import rrule, MONTHLY
list(rrule(MONTHLY, dtstart=datetime(2015, 12, 31), until=datetime(2016,01,01)))
这只回报[datetime.datetime(2015, 12, 31, 0, 0)]
,不[datetime.datetime(2015, 12, 31, 0, 0), datetime.datetime(2016, 01, 01, 0, 0)]
同样,我想对于任何开始日期在12月相同的输出,以及任何一天结束一月。也就是说,我只关心月份为2015-12
和2016-01
的事实。这一天对我来说并不重要,但我只希望每个月只有一个datetime
(这些输入的最大值为2,对于day
组件的值为最大值)。
是否有一个简单的解决方案,或者我将不得不增加每日和建立自己的一套月?
很好的回答。虽然,不是'[dt for rrule(...)]'有点冗长'list(rrule(...))'就足够了。 – AChampion