Google Calendar API时区夏令时和标准时间问题

用户3251285:

当我创建一个日期接近的事件时,一切正常。

但是,当我创建几个月后的活动时,假设它属于夏令时DST时(当前我处于夏令时),则该事件的创建会产生不必要的1小时偏移。

以下代码产生以下输出:

Starts 2020-12-20 9:00 Ends 2020-12-20 11:00

 $event = array(
        'summary' => $attributes['summary'],
        'location' => $attributes['location'],
        'description' => $attributes['description'],
        'start' => array(
            'dateTime' => 2020-12-20T10:10:00-04:00',
            'timeZone' => 'America/Toronto',
        ),
        'end' => array(
            'dateTime' => 2020-12-20T10:12:00-04:00',
            'timeZone' => 'America/Toronto',
        ),
        'anyoneCanAddSelf'=>true,
        'guestsCanInviteOthers'=>true,
    );

我应该如何更改代码,使其自动运行,而无需每年两次手动更改代码/偏移量?

囚犯 :

问题是您过度指定了dateTime要包含offset参数,但同时也提供了一个timeZone参数。在这种情况下,该timeZone参数与dateTime(美国/多伦多在该日期的偏移量-05:00)中的偏移量值冲突

给定两者之间的冲突,它选择使用在中指定的偏移量dateTime

事件资源文档end.dateTime属性中指定

时间,作为组合的日期时间值(根据RFC3339格式化)。除非在timeZone中明确指定了时区,否则需要时区偏移量

(添加了重点)

解决问题的最简单方法是从dateTime您指定的值中删除偏移值,并依靠该timeZone设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章