我正在尝试使用 ICal4j 创建一个 .ics
文件.
但是当我尝试添加一个 recurrence 它失败了,抛出一个 ValidationException
:
net.fortuna.ical4j.model.ValidationException: Invalid property: RRULE at
net.fortuna.ical4j.model.Calendar.validate(Calendar.java:297) at
net.fortuna.ical4j.model.Calendar.validate(Calendar.java:257) at
net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:96) at
net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:83)
我添加重复的代码是:
Recur recur = new Recur(Recur.WEEKLY,null);
recur.setUntil( new DateTime(dateTo.getTime()) );
RRule rule = new RRule(recur);
cal.getProperties().add(rule);
没有这个规则它工作正常,但我想每个星期一添加这个事件
直到 2011 年 12 月 12 日
(dateTo
返回的日期)。有什么想法吗?
最佳答案
重复规则 (RRULE) 属性必须添加到日历中的特定事件 (VEVENT),而不是日历本身。例如
myEvent.getProperties().add(rule);
此外,如果您希望事件发生在星期一,您可能应该使用这样的规则:
FREQ=WEEKLY;BYDAY=MO;UNTIL=<date>
这超出了我的想象,所以最好检查 RFC 以确保:
关于java - ICal4j 中的递归规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785400/