ValueError: RRULE UNTIL values must be specified in UTC when DTSTART is timezone-aware
ValueError: RRULE UNTIL values must be specified in UTC when DTSTART is timezone-aware
我一直在尝试使用 python 的 dateutil rrule 包
来解析重复规则
但是,我收到一个奇怪的错误,与我对重复规则的理解不一致
错误是
ValueError: RRULE UNTIL values must be specified in UTC when DTSTART is timezone-aware
我调用的函数是
recurrence = "RRULE:FREQ=WEEKLY;UNTIL=20181206T075959Z;BYDAY=MO,WE,FR"
rule = rrulestr(recurrence, dtstart=datetime.now())
如果 until 的结构为 UNTIL=20181206T075959Z
,那不是在 UTC 中吗?为什么会出现此错误,什么是合适的解决方案?问题是,这适用于
"RRULE:FREQ=WEEKLY;UNTIL=20191206T075959;BYDAY=MO,WE,FR"
,我认为它不是 UTC,因为它缺少 'Z'
这可能是一条令人困惑的错误消息,因为它取自 RFC 规范,但并未真正解释上下文。
问题是 dtstart
和 UNTIL
都必须是原始的或时区感知的,并且规范实际上指定 UNTIL
在这种情况下必须是 UTC。
要修复您的代码,您可以使 dtstart
时区感知:[=16=]
from dateutil.tz import UTC
recurrence = "RRULE:FREQ=WEEKLY;UNTIL=20181206T075959Z;BYDAY=MO,WE,FR"
rule = rrulestr(recurrence, dtstart=datetime.now(UTC))
欢迎在 dateutil's issue tracker 上报告令人困惑的错误消息。
我一直在尝试使用 python 的 dateutil rrule 包
来解析重复规则但是,我收到一个奇怪的错误,与我对重复规则的理解不一致
错误是
ValueError: RRULE UNTIL values must be specified in UTC when DTSTART is timezone-aware
我调用的函数是
recurrence = "RRULE:FREQ=WEEKLY;UNTIL=20181206T075959Z;BYDAY=MO,WE,FR"
rule = rrulestr(recurrence, dtstart=datetime.now())
如果 until 的结构为 UNTIL=20181206T075959Z
,那不是在 UTC 中吗?为什么会出现此错误,什么是合适的解决方案?问题是,这适用于
"RRULE:FREQ=WEEKLY;UNTIL=20191206T075959;BYDAY=MO,WE,FR"
,我认为它不是 UTC,因为它缺少 'Z'
这可能是一条令人困惑的错误消息,因为它取自 RFC 规范,但并未真正解释上下文。
问题是 dtstart
和 UNTIL
都必须是原始的或时区感知的,并且规范实际上指定 UNTIL
在这种情况下必须是 UTC。
要修复您的代码,您可以使 dtstart
时区感知:[=16=]
from dateutil.tz import UTC
recurrence = "RRULE:FREQ=WEEKLY;UNTIL=20181206T075959Z;BYDAY=MO,WE,FR"
rule = rrulestr(recurrence, dtstart=datetime.now(UTC))
欢迎在 dateutil's issue tracker 上报告令人困惑的错误消息。