我想列出两个日期之间的 MS Graph CalendarView 事件。我使用这些查询选项:
List<Option> options = new LinkedList<Option>();
options.add(new QueryOption("startDateTime", viewStart.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)));
options.add(new QueryOption("endDateTime", viewEnd.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)));
options.add(new QueryOption("$orderBy", "start/dateTime"));
options.add(new HeaderOption("Prefer", "outlook.timezone=\"" + timeZone + "\""));
EventCollectionPage eventPage = graphClient.users(eventsRequest.getUserId())
.calendarView()
.buildRequest(options)
.select("subject,start,end,categories,attendees,iCalUId,id,bodyPreview")
.top(25)
.get();
但是我得到了日历用户的所有事件,显然没有考虑 startDateTime 和 endDateTime。我不明白我在这里做错了什么?
根据 Microsoft [List CalendarView][1] 文档,应将 ISO 8601 格式用于 startDateTime 和 endDateTime。
打印 startView 和 endView:
viewStart.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME) --> 2022-01-01T00:00:00+01:00
viewStart.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME) --> 2024-01-01T00:00:00+01:00
所以,日期格式正确,所以我想知道为什么不考虑这些 QueryOptions ?