use*_*183 5 java icalendar ical4j rfc5545
我正在尝试.ics使用ICal4j创建一个文件.
但是当我尝试添加重复时它会失败,抛出一个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)
Run Code Online (Sandbox Code Playgroud)
我添加重复的代码是:
Recur recur = new Recur(Recur.WEEKLY,null);
recur.setUntil( new DateTime(dateTo.getTime()) );
RRule rule = new RRule(recur);
cal.getProperties().add(rule);
Run Code Online (Sandbox Code Playgroud)
没有这个规则它工作正常,但我想每个星期一添加此事件,
直到12 December 2011(返回的日期dateTo).有任何想法吗?
小智 5
必须将重新出现规则(RRULE)属性添加到日历中的特定事件(VEVENT),而不是日历本身.例如
myEvent.getProperties().add(rule);
Run Code Online (Sandbox Code Playgroud)
此外,如果您希望事件发生在星期一,您应该使用如下规则:
FREQ=WEEKLY;BYDAY=MO;UNTIL=<date>
Run Code Online (Sandbox Code Playgroud)
这是我的头脑,所以最好检查RFC以确定:
http://tools.ietf.org/html/rfc5545#section-3.3.10
Ale*_*exR -1
我对这个 API 也有类似的问题。不幸的是,我现在没有代码,但我记得问题是某些属性是“可选的”。有一个 API 允许他们注册。我建议您下载源代码并查看方法的作用validate。您将看到它验证该属性是否在集合(或映射)中。然后只需找到向该集合添加属性的方法即可。
如果您在获取源代码时遇到困难,只需反编译类文件即可。我个人用这个包做到了这一点。我使用 Eclipse 插件来反编译没有关联源代码的每个类:http://java.decompiler.free.fr/?q =jdeclipse
很抱歉我的回答不够具体,但无论如何我希望它能有所帮助。祝你好运。
| 归档时间: |
|
| 查看次数: |
5402 次 |
| 最近记录: |