Google日历事件查询未检索到正确的条目

时间:2011-03-12 17:03:44

标签: .net google-calendar-api gdata-api

我正在尝试使用retrieve Google's .NET Calendar API南非公众假期。

我有以下问题:

  1. 某些检索到的数据超出了指定的EventQuery范围。 (在给定日期范围之前和之后)
  2. 缺少部分日历条目。其中一个是圣诞节2011-12-25
  3. 我通过查看online验证了此特定公开日历的日期是否正确。

    我最好的猜测是我错误地使用了API,并且我正在查询日历条目的创建/更新日期而不是事件日期。

    代码:

    var feedUrl = "http://www.google.com/calendar/feeds/en.sa%23holiday%40group.v.calendar.google.com/public/full";
    var service = new CalendarService("My application name");
    
    var qry       = new EventQuery(feedUrl);
    qry.StartDate = new DateTime(2011, 1, 1);
    qry.EndDate   = new DateTime(2012, 1, 1);
    
    EventFeed results = service.Query(qry);
    
    foreach (EventEntry entry in results.Entries)
    {
        if (entry.Times.Count == 0)  
           continue;
    
        // Using entry.Times[0].StartTime results in 
        // missing data and data outside of the given search criteria.
    }
    

    我使用的是最新的Google .NET Data API 1.7.0.1

    我做错了什么?

1 个答案:

答案 0 :(得分:5)

发现问题:

qry.StartDate = new DateTime(2011, 1, 1);
qry.EndDate   = new DateTime(2012, 1, 1);

应该是:

qry.StartTime = new DateTime(2011, 1, 1);
qry.EndTime   = new DateTime(2012, 1, 1);

这解决了我在问题中提到的两个问题。 (不确定为什么EventQuery类同时具有日期/时间属性,当只有一个集合有效时,这会让人感到困惑。)