我一直在尝试使用浮动时区设置来获取ICS文件。研究表明不建议使用浮动时区,但我的客户明确要求在英国和美国下载ICS文件的用户同时看到这些文件。
我的代码如下(减去邮件正文);
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:GMT Standard Time
BEGIN:STANDARD
DTSTART:16011028T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0000
TZOFFSETTO:-0000
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010325T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:-0000
TZOFFSETTO:+0000
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20150609T083427Z
DESCRIPTION:Testing Tuesday 09/06/2015 – 11.00-11.30\n
DTEND;TZID="GMT Standard Time":20150609T113000
DTSTAMP:20150609T083427Z
DTSTART;TZID="GMT Standard Time":20150609T110000
LAST-MODIFIED:20150609T083427Z
LOCATION:LA
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-gb:Test Short Event
TRANSP:OPAQUE
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
我已将计算机的时区设置为Phoenix(UTC -07:00),并在Outlook中打开此ICS文件,因为它显示的时间是11:00-11:30,我希望如此。然而,Outlook还打开了显示都柏林,爱丁堡,里斯本,伦敦等地的时区下降。如果这门课程在美国运行,那么我认为这会让用户感到困惑。
我尝试删除DTSTART和DTEND中的所有VTIMEZONE部分和TZID引用,或者仅删除其中一个,或者将TZID更改为TZID:America / Phoenix,或者将Z添加到时间,但所有这些似乎给了我不稳定的时间。但是,它确实删除了Outlook中的时区下拉!
所以我的问题是; 1.有没有办法告诉Outlook不要打开这个ICS文件中的时区下拉? 2.有没有更好的方法让我这样做,设定课程的确切时间和在世界任何地方下载课程的能力与课程的设定时间相同?
谢谢,我希望我写的所有内容都有道理。我已经对此进行了数小时的研究,但我似乎只是围成一圈!
答案 0 :(得分:0)
表示浮动事件的标准方式对应于您的第二个描述(即删除对TZID的所有引用)。在你的情况下像:
DTSTART:20150609T110000
DTEND:20150609T113000
在Outlook方面这样的事件的结果是什么?
答案 1 :(得分:0)
更多研究(哈欠)表明这是一个Outlook问题,他们不遵循ICS浮动时区指南;
MS Outlook incorrectly interprets ICS files in local time: daylight savings time overcorrection
所以,现在我认为解决这个问题的唯一方法是收集访问ics文件的人的时区,并从ICS文件时间中消除时差。所以,如果课程是在上午11点开始运行,而加利福尼亚州的某个人(UTC -08:00)选择了该课程,那么我将不得不告诉该文件在晚上7点开始输入课程,以便将其拉入该用户的Outlook显示上午11点的正确时间。或者我认为无论如何它都会起作用。需要更多的修补。