在 Google 日历 API 中处理夏令时

Handling Daylight saving time in Google Calendar API

Google支持日历事件按夏令时显示时间。但是,当我从 Google Calendar API,我在 json 收到不同时间的事件,即使在 UI 它们都有相同的时间,但日期不同。这是一个例子:

我在 2017-10-17 创建了一个活动,时间为 16:00-17:00(当地时间)。

start={dateTime=2017-10-17T14:00:00.000Z} 

另一个事件创建于 2017 年 11 月 14 日,时间为 16:00-17:00(当地时间)。

start={dateTime=2017-11-14T15:00:00.000Z}

在这两个日期之间我们进行了夏令时切换。但是,那是在我的时区(东欧时区)。 Google returns UTC 日期(日期末尾有 'Z')。

为什么 Google returns 不同的 UTC 时间显示在 UI 上? 由于不清楚 Google 何时应用夏令时,我在后端处理时遇到了一些问题。

你注意到欧洲切换到 Central European Time on Sunday 29 Oct 了吗?

这应该占一小时的差异。

当您在 2017-10-17 时间 16:00-17:00 创建第一个事件时,它会使用偏移量 -02:00.

转换为 UTC

但是,第二个事件是使用偏移量 -01:00 转换的。