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

时间:2017-08-21 14:55:16

标签: icalendar

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参数?

1 个答案:

答案 0 :(得分:1)

验证iCalendar流时,无需区分。它总是一个浮动时间。

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

  1. 首先了解https://tools.ietf.org/html/rfc5545#section-3.3.5
  2. 中定义的3种类型
  3. 然后决定哪一个在他们的应用程序特定的上下文中最合适。
  4. 最后,基于2(即UTC之间的选择,本地的tz或浮动),应用您在帖子中引用的规则。
  5. 请注意,客户对浮动时间的支持通常较差且不可预测,因此如果可以的话,应避免生成浮动时间。