Ser*_*gii 3 java icalendar rrule
我有以下iCal重复规则示例:
"RRULE:FREQ=YEARLY;INTERVAL=2"
"RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,WE,TH"
Run Code Online (Sandbox Code Playgroud)
我需要一个Java库来解析要在对象中处理的RRULE模式。有没有好的Java库?
您可以使用lib-recur
它仍然受支持并处理RFC 5545和RFC 2445。
RecurrenceRule rule = new RecurrenceRule("FREQ=YEARLY;BYMONTHDAY=23;BYMONTH=5");
DateTime start = new DateTime(1982, 4 /* 0-based month numbers! */,23);
RecurrenceRuleIterator it = rule.iterator(start);
int maxInstances = 100; // limit instances for rules that recur forever
while (it.hasNext() && (!rule.isInfinite() || maxInstances-- > 0))
{
DateTime nextInstance = it.nextDateTime();
// do something with nextInstance
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Maven安装它
<!-- https://mvnrepository.com/artifact/org.dmfs/lib-recur -->
<dependency>
<groupId>org.dmfs</groupId>
<artifactId>lib-recur</artifactId>
<version>0.10.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
或与gradle
// https://mvnrepository.com/artifact/org.dmfs/lib-recur
compile group: 'org.dmfs', name: 'lib-recur', version: '0.10.2'
Run Code Online (Sandbox Code Playgroud)
此处提供了更多文档:https : //github.com/dmfs/lib-recur
解决方案是使用:
<dependency>
<groupId>org.scala-saddle</groupId>
<artifactId>google-rfc-2445</artifactId>
<version>20110304</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
几个例子:
1 转换为java对象:
rule = new RRule("RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,WE,TH");
Run Code Online (Sandbox Code Playgroud)
2 转换回来:
rule.toIcal();
Run Code Online (Sandbox Code Playgroud)