gpt4 book ai didi

date - Google Calendar API 不接受具有正 UTC 偏移量的日期时间?

转载 作者:行者123 更新时间:2023-12-03 03:41:49 24 4
gpt4 key购买 nike

我正在开发一款 iOS 应用,该应用可以访问 Google 日历来显示即将举行的直播的日期。

Google claims对于任何采用 DateTime 的参数,其格式必须为 ISO 8601 ,我理解应该是这样的: 2015-05-17T18:49:11-07:00 (我住在南加州,通常是 UTC-08:00 但现在是 UTC- 07:00 因为夏令时)无论如何,在我自己的测试中,我的应用程序生成如下 URL:

https://www.googleapis.com/calendar/v3/calendars/CALENDAR_IDENTIFIER/events?orderBy=startTime&q=Live&singleEvents=true&timeMin=2015-05-17T18:49:11-07:00&timeMax=2015- 06-16T18:49:11-07:00&key=API_KEY

这些工作正常,它们返回预期的日历数据。

但是我最近刚刚添加了一位居住在新西兰的测试人员,他的时间为 UTC+12:00。他的应用程序正在生成如下 URL:

https://www.googleapis.com/calendar/v3/calendars/CALENDAR_IDENTIFIER/events?orderBy=startTime&q=Live&singleEvents=true&timeMin=2015-05-17T13:49:11+12:00&timeMax=2015- 06-16T13:49:11+12:00&key=API_KEY

但是对他来说,它们不起作用,它们从 Google 返回“400 Bad Request”错误。

我做了一些实验,在我的发现中,我尝试的任何负 UTC 偏移量都可以正常工作(例如,夏威夷是 UTC-11:00,安克雷奇是 UTC-09:00),但是没有一个正 GMT 偏移量工作(新西兰 @ UTC+12:00,日本 @ UTC+09:00)

我做错了什么?

编辑:我现在已经解决了这个问题,方法是将所有时间转换为 UTC 并将其指定为,例如 2015-05-17T18:49:11Z,然后将 timeZone=America/Los_Angeles(或 Asia/Tokyo 或用户所在的任何位置)添加到 API 调用中。谷歌似乎接受了这一点。我仍然想知道为什么,即使他们声称 ISO 8601 格式字符串被接受,但实际上却没有(考虑到 Google 的回复,即我的应用程序收到的实际日历数据,这尤其奇怪/令人费解/令人沮丧)事实上,实际上包含具有正偏移量的 ISO 8601 日期字符串,例如 2015-06-15T09:00:00+09:00。)

最佳答案

是的,这似乎是一个错误。我在西类牙(UTC+01:00),鉴于响应数据按照您所说的格式设置为正偏移量,我对此感到非常疯狂。

我将它用于 http 请求中的 timeMin 参数,以仅获取 future 的事件。最终将当前日期时间添加最后一个“Z”作为字符串。显然工作正常,但我处于日历定义的同一时区。如果情况并非如此,我想如果您想要小时进动,那么您可能会遇到问题。

timeZone 参数显然仅用于响应数据。

关于date - Google Calendar API 不接受具有正 UTC 偏移量的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30294500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com