如何验证具有 DATE-TIME 值的 属性 必须具有 TZID 参数?

How to validate that a property with a DATE-TIME value must have a TZID parameter?

RFC 5545 的 3.2.19 部分指出,在这种情况下,具有 DATE-TIME 值的 属性 必须指定 TZID 参数:

The parameter [TZID] MUST be specified on properties with a DATE-TIME value if the DATE-TIME is not either a UTC or a "floating" time.

DTSTART 属性 有一个 DATE-TIME 值。这是一个例子:

DTSTART:19970714T133000

这是具有“浮动”时间的有效 属性 吗?或者,它是否是具有“浮动”时间的无效 属性 错误地忘记包含 TZID 参数?

验证 iCalendar 文件时,如何区分值为“浮动”时间的有效 属性 与值为“浮动”时间的无效 属性时间错误地忘记包含 TZID 参数?

验证 iCalendar 流时,没有什么可区分的。永远是漂浮的时光

另一方面,在构建 iCalendar 流时,应该

  1. 先了解https://www.rfc-editor.org/rfc/rfc5545#section-3.3.5,
  2. 定义的3种类型
  3. 然后决定哪一个最适合他们的特定应用环境。
  4. 最后,基于 2(即在 UTC、带 tz 的本地或浮动之间进行选择),应用您在 post.
  5. 中引用的规则

请注意,客户端对浮动时间的支持通常很差且不可预测,因此您应该尽可能避免生成它。