【问题标题】:Google Calendar and the end of Daylights Savings TimeGoogle 日历和夏令时的结束
【发布时间】:2020-07-03 17:04:56
【问题描述】:

假设我的时区是美国/芝加哥。当夏令时在 11 月 1 日结束时,如果我正确理解 DST,时钟将从 1:59:59 CDT (UTC -05:00) 滴答到 1:00:00 CST (UTC -06:00)

这意味着在 11 月 1 日,将有两个时间跨度为凌晨 1 点到 1:59:59 的实例。当我在 11 月 1 日凌晨 1:30 到凌晨 1:45 在 Google 日历中创建一个事件时,它如何知道我指的是哪一个 15 分钟?

当然,区分美国/芝加哥凌晨 1:30 到凌晨 1:45 的第一个实例和美国/芝加哥凌晨 1:30 到凌晨 1:45 的第二个实例似乎是通过关联它们各自的偏移量(UTC -05:00 和 UTC -06:00)。

问题在于 Google 日历似乎不处理偏移量,只处理时区,但在这种情况下,由于 America/Chicago 有两个不同的偏移量,因此在美国/芝加哥凌晨 1:30 到凌晨 1:45 有两个不同的实例(UTC -05:00 DST,UTC -06:00 ST)。

我是否遗漏了什么,或者这是一个边缘案例/UI 问题?

谢谢!

【问题讨论】:

    标签: google-calendar-api


    【解决方案1】:

    这将取决于用户的观点。正如您在documentation 中看到的:

    您可以更改您的时区并在特定时区创建活动。无论您在哪里创建活动,每个人都会在自己的时区看到它。这可以帮助制定旅行计划或轻松为世界各地的人们创建活动。

    日历使用 UTC 时区,所以:

    创建事件后,它们会转换为 UTC,但您始终会在本地时间看到它们。

    这意味着您在 -5:00 UTC 从凌晨 1:30 到凌晨 1:45 的活动将在该时间显示,并且在时间更改之后它将不再存在,因为时间在 1:59 更改: 59 活动结束后

    如果您的活动从凌晨 1:50 变为“凌晨 2:15”,则时间更改实际上会从 -5 UTC 1:50 开始并在 -6 UTC 1:15 结束。

    【讨论】:

    • 好的,这很有趣。你知道我将如何创建两个事件,一个在 UTC -05:00 凌晨 1:30 到凌晨 1:45,一个在 UTC -06:00 凌晨 1:30 到 1:45?您的回答似乎暗示我只能创建前一个事件,而不能创建后者。
    • 是的,在凌晨 1:30 到 1:45 创建一个,在凌晨 2:30 到 2:45 创建一个,因此当时间在凌晨 1:59:59 更改时,第二个将在 1:30 和凌晨 1 点 45 分
    猜你喜欢
    • 2018-08-27
    • 2016-01-28
    • 1970-01-01
    • 2015-11-23
    • 2011-03-10
    • 1970-01-01
    • 2013-05-16
    • 2013-05-16
    • 2018-08-19
    相关资源
    最近更新 更多