2024-10-02 08:30:27 发布
网友
如何使用dateutil创建只排除结束时间戳的rrule?我是要创建一个自定义函数还是有一种本地方法来实现它?在
这里有一个例子
rule = rrule.rrule(rule.HOURLY,tsstart=somedate,until=somedate_four_hours_later)
我希望输出排除somedate_four_hours_later,只生成4个时间戳,somedate,somedate+1小时,等等
somedate_four_hours_later
您可以设置计数:
In [1]: from dateutil import rrule In [2]: from datetime import datetime, timedelta In [3]: st = datetime(2016, 7, 5, 23, 30) In [4]: rule = rrule.rrule(rrule.HOURLY, st, count=4) In [5]: print(list(rule)) [datetime.datetime(2016, 7, 5, 23, 30), datetime.datetime(2016, 7, 6, 0, 30), datetime.datetime(2016, 7, 6, 1, 30), datetime.datetime(2016, 7, 6, 2, 30)]
或者使用timedelta将三个小时添加到开始时间:
一种方法是使用^{},它允许您根据需要组合重复规则和特定日期。在本例中,您要做的是将until日期设置为exdate(排除日期):
until
exdate
from dateutil import rrule from datetime import datetime, timedelta dtstart = datetime(2015, 1, 3, 12) dtuntil = datetime(2015, 1, 3, 16) rr = rrule.rrule(freq=rrule.HOURLY, dtstart=dtstart, until=dtuntil) # Add your rrule to the ruleset, then exclude the until date from the rule set rrset = rrule.rruleset() rrset.rrule(rr) l1 = list(rrset) rrset.exdate(dtuntil) l2 = list(rrset) print(l1[-1]) # 2015-01-03 16:00:00 print(l2[-1]) # 2015-01-03 15:00:00
rrule本身将包括until日期,但{}将其从rruleset中排除。在
rrule
rruleset
您可以设置计数:
或者使用timedelta将三个小时添加到开始时间:
^{pr2}$一种方法是使用^{} ,它允许您根据需要组合重复规则和特定日期。在本例中,您要做的是将
until
日期设置为exdate
(排除日期):rrule
本身将包括until
日期,但{rruleset
中排除。在相关问题 更多 >
编程相关推荐