当前位置: 首页 > 知识库问答 >
问题:

谷歌日历api返回不同的日期格式

汪泓
2023-03-14

我有一个python脚本,它将我的一些约会同步到两个不同的谷歌账户,两个账户都有一个谷歌日历,显然设置相同(时区设置也相同),在调用下载约会列表的时候然而,在日历上,调用返回具有不同日期格式的约会,具体取决于我要查询的日历。

使用的库是google开发的库(使用的Python版本是3.6)

脚本(在两种情况下都在同一台计算机上运行)如下所示:

params = {
    'calendarId':   self._calendar.id,
    'timeMin':      from_datetime,
    'timeMax':      to_datetime,
    'maxResults':   MAX_APP_DOWNLOADS,
    'singleEvents': True,
    'orderBy':      'startTime',
    'showDeleted':  'true'
}
events_result = self._service.events().list(**params).execute()
events = events_result.get('items', [])

我想这是一些关于日历配置的问题,但是我在设置中没有找到任何关于它的设置。

共有1个答案

吴凯泽
2023-03-14

返回的两次都是ISO 8601格式。

更新:从谷歌API文档中,它是RFC3339。它们大多相似,但RFC3339更为严格。

可以使用datetime.datetime.fromisoformatdateutil.parser.isoparse

>>> from datetime import datetime

>>> from dateutil.parser import isoparse

>>> datetime.fromisoformat('2011-11-04T00:05:23+04:00')
datetime.datetime(2011, 11, 4, 0, 5, 23, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))

>>> isoparse('2011-11-04T00:05:23Z')
datetime.datetime(2011, 11, 4, 0, 5, 23, tzinfo=datetime.timezone(datetime.timedelta(seconds=0)))

看起来像是datetime。日期时间。fromisoformat不支持以“Z”结尾的字符进行读取,因此应使用dateutil格式。

 类似资料:
  • 我试图从谷歌日历APIiOS应用程序的生日。现在我可以从谷歌日历获取事件。 如何从谷歌日历API获取生日iOS。我通过这个留档谷歌日历API:https://developers.google.com/google-apps/calendar/quickstart/ios

  • 使用节点https://github.com/google/google-api-nodejs-client库,我试图访问公共假期。我有身份验证工作,并可以访问API。当我测试事件时。使用API资源管理器列出endpoint,我怀疑日历有效。 日历 Id :“en.sa#holiday@group.v.calendar.google.com” 存在于我的个人日历中,但不存在于应用日历中。 当我尝试

  • 我一直在尝试使用服务帐户访问Calendar v3 API。我已经添加了范围https://www.googleapis.com/auth/calendar并与该服务帐户的电子邮件地址共享了我的日历。 我也一直在用同一个服务帐户访问https://www.googleapis.com/auth/coordinate scope,它工作得很好。 此外,尝试撤销访问权限,如这里所述:为什么谷歌日历AP

  • 我想知道我是否需要Google java客户端库才能从GAE访问我的Google日历。默认情况下,它们是Google App Engine SDK的一部分吗? 此外,我找不到一个很好的示例或教程来展示如何从Google Cloud Platform应用程序创建、读取、更新和删除Google日历事件。 非常感谢,如果您可以提供相同的代码示例或链接到适当的工作教程。

  • 我有一个应用程序使用s2s与谷歌日历API的连接。我需要在不同的用户日历中创建事件。若要使之成为可能,用户应转到日历的设置并将其日历共享到服务帐户。但我想为用户简化这一点 - 这样他们就不需要去他们的日历设置。我没有用于用户交互的界面 - 这是一个机器人。如何以其他方式访问用户的日历?

  • 我希望我的应用在用户的 Google 日历上添加/删除/更新事件。应用只需删除和更新应用本身已添加的事件。 我是否正确地理解了这一点,为了使其正常工作,用户必须向应用程序授予对其Google日历的完全访问权限,这意味着该应用程序可能会读取和删除任何日历上的私人事件? 或者,有没有办法限制用户对应用程序的访问权限,例如,允许应用程序创建单个日历,只允许它访问该日历上的事件? 我已经通读了相关的谷歌日