python-3.x 如何在太平洋时区使用Google日历API提取今天的所有事件

lokaqttq  于 2023-10-21  发布在  Python
关注(0)|答案(2)|浏览(106)

我试着使用谷歌日历API从一天的开始到结束拉取我所有的日常事件。我使用API跟随谷歌的快速入门程序,但它给了我接下来的10个事件,并在UTC时区0偏移。我只想抓住当天和“美国/洛杉矶”时区的事件。

now = datetime.datetime.utcnow().isoformat() + 'Z'
    print('Getting todays events')
    events_results = service.events().list(calendarId='primary', timeMin=now,
                                        maxResults=10, singleEvents=True,
                                        orderBy='startTime').execute()
4ktjp1zp

4ktjp1zp1#

您可以对脚本进行以下更改:

today = datetime.datetime.today();
start = (datetime.datetime(today.year, today.month, today.day, 00, 00)).isoformat() + 'Z'
tomorrow = today + datetime.timedelta(days=1)
end =  (datetime.datetime(tomorrow.year, tomorrow.month, tomorrow.day, 00, 00)).isoformat() + 'Z'
print('Getting todays events')
events_results = service.events().list(calendarId='primary', timeMin=start, timeMax=end, singleEvents=True, orderBy='startTime').execute()

如果你想检索今天的所有事件,你必须使用timeMintimeMax参数。timeMin将被设置为今天的日期小时00:00,对于timeMax,这将表示这一天的结束-因此,已选择了使用00:00设置的明天的日期。
另外,这里不需要maxResults参数,因为您希望检索所有事件,而不是有限数量的事件。
请记住,为timeMintimeMax提供的日期都是 * 独占 * 边界,它们必须是带有强制时区偏移的RFC 3339时间戳。
对于将来的请求,您还可以使用Calendar API Reference模拟它们并测试所需的参数。

引用

sqserrrh

sqserrrh2#

我正要问如何在这里调整时区,因为我使用上面的代码得到了错误的结果,但我发现了-所以我想我会说我是如何做到的,因为有同样问题的人也可能在这里结束:)
在请求今天的事件列表时调整时区:

today = dt.datetime.today()
start = (dt.datetime(today.year, today.month, today.day, 00, 00, 00)
        ).astimezone(tz_UTC).isoformat().removesuffix("+00:00")+'Z'
end = (dt.datetime(today.year, today.month, today.day, 23, 59, 59)
        ).astimezone(tz_UTC).isoformat().removesuffix("+00:00")+'Z'

相关问题