在使用Google日历api进行适当授权后,我尝试了以下代码行:
events = service.events().list(calendarId='qeiopruweqirup@group.calendar.google.com',orderBy='updated',
timeMin='2014-08-01T00:00:00Z',timeMax='2014-08-31T00:00:00Z',pageToken=page_token).execute()
for event in events['items']:
print event['summary'], event['start'], event['end']
page_token = events.get('nextPageToken')
if not page_token:
break
代码工作正常,除了我在下面复制的结果中的一个小怪癖,以说明我的观点:
FakeEvent2 {u'dateTime': u'2014-08-22T01:00:00-04:00'} {u'dateTime': u'2014-08-22T13:00:00-04:00'}
FakeEvent3 {u'dateTime': u'2014-08-27T18:00:00-04:00'} {u'dateTime': u'2014-08-28T06:00:00-04:00'}
FakeEvent1 {u'dateTime': u'2014-08-21T02:00:00-04:00'} {u'dateTime': u'2014-08-21T14:00:00-04:00'}
在发出请求时,我使用datetime
格式编码YYYY-MM-DDTHH:MM:SSZ
变量。但是,事件的start
和end
次都有一个额外的字符串-04:00
。我应该从中做出什么感觉?我猜它意味着4小时,但我很困惑为什么谷歌会这样说。例如,我尝试编写一个简短的函数来查看哪个事件对当前分钟有效。该函数返回一个超过结束时间4小时的事件!例如,如果日历中的条目从早上8点到早上9点,则该条目会显示在is there an active event during (11:45 am, 11;46 am)?
的查询中。
为什么不坚持指定start
和end
的标准方式?这个 A-B 指定某个时间点的方式的优势是什么?我无法找到我可以通过Google阅读更多有关此数据类型的参考资料。
答案 0 :(得分:2)
事件列表操作将为您提供日历时区偏移量的事件。如果您只想处理以UTC格式返回的事件,可以为列表请求https://developers.google.com/google-apps/calendar/v3/reference/events/list
指定timezone参数另请参阅RFC 3339 http://tools.ietf.org/html/rfc3339中的时间定义以了解偏移量(-04:00)