我想编辑从字符串解析的现有规则以设置UNTIL日期。我怎样才能做到这一点?从理论上讲,我可以修改规则字符串并重新解析它,但是随后变得很复杂。我想简化一下:无论规则涉及多少次出现或直到到达什么日期,我都想用新的UNTIL日期覆盖它。
谢谢。
我不知道与此相关的公共接口,但是如果您确实需要,那么直接设置_until
属性似乎可行。我应该警告您,使用它是一种不好的做法,并且dateutil
的未来版本可能会破坏此代码。
>>> r = rrule(DAILY,dtstart=datetime(2013,7,15,0,0,0), until=datetime.now())
>>> list(r)
[datetime.datetime(2013, 7, 15, 0, 0),
datetime.datetime(2013, 7, 16, 0, 0),
datetime.datetime(2013, 7, 17, 0, 0),
datetime.datetime(2013, 7, 18, 0, 0),
datetime.datetime(2013, 7, 19, 0, 0),
datetime.datetime(2013, 7, 20, 0, 0),
datetime.datetime(2013, 7, 21, 0, 0),
datetime.datetime(2013, 7, 22, 0, 0),
datetime.datetime(2013, 7, 23, 0, 0)]
>>> r._until = datetime(2013, 7, 20, 0, 0)
>>> list(r)
[datetime.datetime(2013, 7, 15, 0, 0),
datetime.datetime(2013, 7, 16, 0, 0),
datetime.datetime(2013, 7, 17, 0, 0),
datetime.datetime(2013, 7, 18, 0, 0),
datetime.datetime(2013, 7, 19, 0, 0),
datetime.datetime(2013, 7, 20, 0, 0)]
截至2019年,我希望使用rrule.replace()
方法,例如:
r2 = r1.replace(until=datetime(2013, 7, 20, 0, 0))