我正在与实现google 2445 (https://code.google.com/p/google-rfc-2445/)一起工作,以生成在事件之后应该重复的日期,而不是像通常所指示的那样(RRULE),即记录时间,也就是下次抛出时计算的日期。
example:
Start Date: 17/04/2013 8:30 a.m.
Rule: "RRULE: FREQ = DAILY; UNTIL = 20130430T083000Z, INTERVAL = 1"
Expected Result, Next Repetition: 4/18/2013 8:30 a.m.
Result Obtained, Next Repetition: 4/18/2013 00 00 00这是我正在使用的代码
LocalDate start = new LocalDate(System.currentTimeMillis());
String ical = "RRULE:FREQ=DAILY;"
+ "UNTIL=20130430T083000Z;"
+ "INTERVAL=1;";
//Next Notification
Date f = null;
for (LocalDate date
: LocalDateIteratorFactory.createLocalDateIterable(ical, start, false)) {
f = date.toDateTimeAtCurrentTime().toLocalDate().toDate();
break;
}
System.out.println("Next = " + f);打印结果为Next = Wed Apr 17 00:00:00 :00 COT 2013
这是"BYHOUR = 8;BYMINUTE = 05;BYSECOND = 10“的存在,但不是如何使用它,如果我能帮忙的话,谢谢。
发布于 2013-04-17 19:32:05
LocalDateIteratorFactory生成没有对应时间的日期,但听起来您需要DateTimes。使用DateTimeIteratorFactory代替。
另外,
LocalDate start = new LocalDate(System.currentTimeMillis());可能不等同于
Start Date: 17/04/2013 8:30 a.m.您可能想使用DateTime
DateTime start = new DateTime(2013, 4, 17, 8, 30, 0);最后,如果您最后想要的是
Date f = null;只需使用 compatibility layer即可。
不过,我建议坚持Joda的时间,因为java.util的约会是一团糟。
https://stackoverflow.com/questions/16068537
复制相似问题