无法通过api(java)在google日历中设置正确的重复周期

8aqjt8rx  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(395)
DateTime startDateTime = new DateTime("2020-12-16T09:00:00-03:00");
EventDateTime start = new EventDateTime()
            .setDateTime(startDateTime)
            .setTimeZone("Europe/Minsk");
event.setStart(start);

DateTime endDateTime = new DateTime("2020-12-16T17:00:00-03:00");
EventDateTime end = new EventDateTime()
            .setDateTime(endDateTime)
            .setTimeZone("Europe/Minsk");
event.setEnd(end);
List<String> recurrences = new ArrayList<>(Arrays.asList("RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,19960404T010000Z/PT3H"));

设置重复出现问题。执行此代码后,以下事件中的持续时间设置与主事件中的相同,字符串中的规则被忽略。有人能帮我解决吗?

pn9klfpd

pn9klfpd1#

rfc5545规定:
如果将“rdate”属性指定为时段值,则重复示例的持续时间将是由“rdate”属性指定的,而不是由“dtstart”属性定义的重复示例的持续时间。
日历api事件资源指定:
rfc5545中指定的定期事件的rrule、exrule、rdate和exdate行的列表。请注意,此字段中不允许使用dtstart和dtend行;事件开始和结束时间在“开始”和“结束”字段中指定。对于单个事件或重复事件的示例,此字段被忽略。
换句话说, VALUE=PERIOD 似乎与google日历api不兼容,因为它覆盖了 DTSTART .
我建议您查看定期事件的CalendarAPI文档,以便相应地调整定期规则。
对于java,请记住正确使用utc日期非常重要,请参见此处。

相关问题