簡體   English   中英

C#Google Calendar API忽略事件TimeMin / TimeMax

[英]C# Google Calendar API ignoring Event TimeMin/TimeMax

我正在嘗試使用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;

對於今天(11/12/14 ...所以11/11/14至11/13/14,使用上面的代碼),這是從11/5/14返回事件。

使用.Net庫,這兩個屬性被定義為可為null的DateTime對象( DateTime? ),因此我沒有將其字符串格式化為任何標准。

我在這里做錯什么了嗎?

編輯:我遇到了以下鏈接。 如果此信息為真,那么如何從.Net(這些字段為DateTime?正確處理DateTime?

/ events / list接受timeMin和timeMax參數,它們被簡單地表示為接受“ datetime”參數。 在眾多可能的標准化日期時間格式中,我發現此值應為UTC日期時間(偏移量明確設置為00:00),格式為RFC3339(yyyy-MM-ddThh:mm:ss.sss + 00 :00)。

Google Calendar API v3取消文檔編制

我可以通過將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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM