带有 UTC 的 iCalendar DTSTART 不好吗?

Isn't iCalendar DTSTART with UTC bad?

RFC5545 规范允许以 UTC 时间指定 DTSTART。我认为那很糟糕,可能会导致关闭一个小时。例如,在我住的地方,我们遵守夏令时,但亚利桑那州的部分地区却不这样做。因此,如果亚利桑那州的人创建了一个事件并且它只是存储在 UTC 中,那么当 DST 打开或关闭时我不会遇到 "one off" 问题吗?

我认为我应该始终使用 TZID 标识符编写 DTSTART 和 DTEND 时间。

否 - 显示时间的应用程序或程序应正确转换给定日期的时间。您将 DTSTART 存储在哪个时区并不重要。重要的是显示时间的程序对给定日期的正确时区转换。

因此围绕目的地的夏令时切换。两个 UTC 时间将映射到相同的目的地时间。

旁白: 有一些非常大的知名系统不会以最佳方式为夏令时区设置时区,但这是一个不同的问题。

UTC 中的 DTSTART 在重复发生的事件(尤其是与会者)的情况下很糟糕。例如,参见 Should event times specified in UTC while generating ICS files, to avoid issues with myriad calendaring applications