Google Calendar API时间问题:插入事件时区不符如何解决?
解决Google Calendar API插入事件时的时区显示问题
我来帮你理清这个问题——你遇到的时间偏移是因为请求里的z后缀在ISO 8601格式中代表UTC时区,Google Calendar会自动把UTC时间转换成你日历设置的本地时区,所以才会出现显示成03:00-03:30的情况。
要实现插入的事件保持10:00-10:30显示,分两种场景给你解决方案:
场景1:让事件在指定时区固定显示10:00-10:30
如果你希望事件在某个特定时区(比如你的本地时区)显示为10点到10点半,其他时区用户查看时会自动转换成他们当地的对应时间,那么在请求参数里明确指定时区即可:
{ "end": { "dateTime": "2018-07-12T10:30:00", "timeZone": "Asia/Shanghai" // 可替换为你需要的IANA标准时区,比如America/New_York }, "start": { "dateTime": "2018-07-12T10:00:00", "timeZone": "Asia/Shanghai" } }
这样API会把时间解析为指定时区的10点,而非UTC时间,日历显示就会和你的预期一致。
场景2:让事件在所有时区都显示10:00-10:30(浮动时间)
如果你希望不管用户在哪个时区查看,事件都固定显示为10:00-10:30(比如跨时区的固定当地时间会议),那么需要创建无时区事件:只需去掉时间字符串的z后缀,并且不指定timeZone字段即可:
{ "end": { "dateTime": "2018-07-12T10:30:00" }, "start": { "dateTime": "2018-07-12T10:00:00" } }
这种情况下,Google Calendar会将事件标记为无时区,任何时区的用户查看时都会看到10:00-10:30的时间,不会进行时区转换。
内容的提问来源于stack exchange,提问作者Yunus Aslam
相关产品推荐
相关产品推荐

