Flutter Google 日历 Api 列表事件
Flutter Google Calendar Api list Events
Flutter,Google 日历 API v3
https://pub.dartlang.org/packages/googleapis
作品:
Future<List<Event>> getEvents() =>
calendarApi.events.list("primary",
)
.then((Events events){
return events.items;
}).catchError((e){
print("error encountered");
print("${e.toString()}");
});
无效:
DateTime start = new DateTime.now().subtract(new Duration(days: 10));
DateTime end = new DateTime.now().add(new Duration(days: 10));
..
Future<List<Event>> getEvents() =>
calendarApi.events.list("primary",
timeMin: start,
timeMax: end,
)
.then((Events events){
return events.items;
}).catchError((e){
print("error encountered");
print("${e.toString()}");
});
为什么?
根据 Google 日历 API,timeMin 和 timeMax 值必须遵循 RFC3339 日期标准。
日历在您传入的 DateTimes 上应用 .toIso8601String()
。但是,这并不能使它们成为有效的 RFC3339 日期。
在传入它们之前调用 .toUtc()
将使它们成为有效的 RFC3339。您可以在 DartPad togheter with Googles Api explorer 中尝试,您会看到不同的响应。
可能有更多方法可以使 DateTime RFC3339 兼容,但这至少应该指出错误。
Flutter,Google 日历 API v3 https://pub.dartlang.org/packages/googleapis
作品:
Future<List<Event>> getEvents() =>
calendarApi.events.list("primary",
)
.then((Events events){
return events.items;
}).catchError((e){
print("error encountered");
print("${e.toString()}");
});
无效:
DateTime start = new DateTime.now().subtract(new Duration(days: 10));
DateTime end = new DateTime.now().add(new Duration(days: 10));
..
Future<List<Event>> getEvents() =>
calendarApi.events.list("primary",
timeMin: start,
timeMax: end,
)
.then((Events events){
return events.items;
}).catchError((e){
print("error encountered");
print("${e.toString()}");
});
为什么?
根据 Google 日历 API,timeMin 和 timeMax 值必须遵循 RFC3339 日期标准。
日历在您传入的 DateTimes 上应用 .toIso8601String()
。但是,这并不能使它们成为有效的 RFC3339 日期。
在传入它们之前调用 .toUtc()
将使它们成为有效的 RFC3339。您可以在 DartPad togheter with Googles Api explorer 中尝试,您会看到不同的响应。
可能有更多方法可以使 DateTime RFC3339 兼容,但这至少应该指出错误。