在 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
转换的。
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
.
但是,第二个事件是使用偏移量 -01:00
转换的。