时区不适用于日历活动

时间:2015-08-04 00:51:05

标签: icalendar vcalendar rfc5545

我在事件中遇到时区问题。这是事件的内容,它使用TZID指定事件。然而,我被告知,当中央时区的人添加它时,它显示为2PM而不是下午1点。我在ET,所以无法测试。

你知道为什么会这样吗?

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//http://XXX//Event
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART;TZID="America/Chicago":20150811T130000
DTEND;TZID="America/Chicago":20150811T141500
SUMMARY:Test Event
DESCRIPTION:Test Event
LOCATION:Test Event Location
END:VEVENT
END:VCALENDAR

1 个答案:

答案 0 :(得分:1)

请参阅RFC5545,Time Zone ComponentTime Zone Identifier:您需要在日历文件中添加VTIMEZONE组件,并在其中定义TZID,以便您可以在VEVENT

  

参数名称:TZID

     

必须在“DTSTART”上指定此参数,         a时,“DTEND”,“DUE”,“EXDATE”和“RDATE”属性         指定DATE-TIME或TIME值类型,值为         无论是UTC还是“浮动”时间。 未能在iCalendar对象中包含和遵循VTIMEZONE定义可能会导致对当地时间的不一致理解         在任何给定的位置。

应该注意的是,虽然多次报告Outlook / Exchange不需要VTIMEZONE,但未包含VTIMEZONE会导致其他日历出现不可预测的行为。