iCal4j / biweekly和google-rfc-2445有什么区别?

时间:2016-01-26 21:48:38

标签: java icalendar rfc5545 ical4j rfc2445

现在我正在使用google-rfc-2445库来评估重复发生的事件,并生成实际日期,例如知道何时会发生由以下RRULE定义的事件:RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1

我正在使用biweekly库来生成* .ics文件。实际上它与iCal4j相同,但API更容易使用。

我看到两个库在某种程度上具有可互换的功能,所以我的问题是,我可以使用单个库(iCal4j / biweekly)执行这两个任务吗?生成定期事件和导出/导入* .ics文件?

1 个答案:

答案 0 :(得分:3)

google-rfc-2445主要侧重于评估重复规则,而biweeklyiCal4j则专注于整体处理iCalendar文件。

如果你的目标是生成iCalendar文件,那么你应该使用biweekly或iCal4j。如果您需要迭代重复规则中的日期,请使用google-rfc-2445。如果您只需要创建重复规则,则不需要google-rfc-2445。

biweekly允许您迭代重复规则中的日期(请参阅下面的代码)。它使用google-rfc-2445来执行此操作。

ICalendar ical = ...
VEvent event = ical.getEvents().get(0);
RecurrenceRule rrule = event.getRecurrenceRule();
Iterator<Date> it = rrule.getDateIterator(event.getDateStart().getValue());