0

我制作了一个日程安排应用程序,并且正在使用 iCalendar 格式。我知道我可以使用此代码从当前日历中获取空闲时间段:

DateTime start = new DateTime();
DateTime end = new DateTime(start.getTime() + 1000 * 60 * 60 * 24 * 7);
VFreeBusy request = new VFreeBusy(start, end, new Dur(0, 2, 0, 0));
VFreeBusy response = new VFreeBusy(request, myCalendar.getComponents());

我通过在日历中的几个事件上使用此代码得到以下输出。

DTSTAMP:20140323T204423Z
DTSTART:20020202T040023Z
DTEND:20020203T040023Z
DURATION:PT45M
FREEBUSY;FBTYPE=FREE:20020202T040023Z/PT2H,20020202T070023Z/PT4H,20020202T120023Z/PT16H
END:VFREEBUSY

我不知道如何将 VFreeBusy 对象与这些空闲时间段一起使用并实际将它们取出,以便我可以比较它们并将它们用作日期和时间。

我使用 response.getProperties().getProperty(Property.FREEBUSY) 来获取我需要的部分,但我不知道如何解析所有字符串。如果您有任何其他方式让我获得这些时间段,请告知。

4

1 回答 1

1

假设您使用的是 ical4j。获得该属性后,您可以将其强制转换为具有 getPeriods() 方法的 FreeBusy 属性。

于 2014-03-24T08:25:23.103 回答