我正在尝试使用Google .Net客户端库来查询Google日历活动。
我成功地删除了事件,但它似乎完全忽略了TimeMin和TimeMax,并在该时间范围之外返回事件。
作为测试,我从昨天这个时间到明天这个时间AddDays()
扩大了这个窗口。
我的代码是:
EventsResource.ListRequest req = service.Events.List(calendarId);
// Limit the calendar to today
req.TimeMin = DateTime.Now.AddDays(-1);
req.TimeMax = DateTime.Now.AddDays(1);
var events = req.Execute().Items;
今天(2014年12月11日......所以2014年11月11日至2014年11月13日使用上面的代码)这是从11/5/14返回的事件。
使用.Net库,这两个属性被定义为可以为空的DateTime对象(DateTime?
),所以我没有将这些属性字符串格式化为任何标准。
我在这里做错了吗?
编辑:我遇到了以下链接。如果此信息为真,那么从.Net处理这个字段的具体方式是DateTime?
。
/ events / list接受timeMin和timeMax参数,这些是 简单地说是接受'日期时间'的论点。无数的 可能的标准化日期时间格式,我发现了这一点 value应为UTC日期时间(偏移量明确设置为00:00) 格式为RFC3339(yyyy-MM-ddThh:mm:ss.sss + 00:00)。
答案 0 :(得分:3)
我可以通过将SingleEvents属性设置为true来实现此功能。
似乎某些显示日期范围的项目是重新发生的事件。将SingleEvents设置为true表示重新发生的事件属于TimeMin / TimeMax指定的日期范围。
EventsResource.ListRequest req = service.Events.List(calendarId);
// Limit the calendar to today
req.TimeMin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
req.TimeMax = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
req.SingleEvents = true;
var events = req.Execute().Items;