【问题标题】:How can I get Outlook to recognize daylight savings time?如何让 Outlook 识别夏令时?
【发布时间】:2014-09-30 03:57:16
【问题描述】:

我有一个用户尝试将其导入 Outlook for Mac 2011 的 ics 文件。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:anonymized
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Europe/Prague
BEGIN:DAYLIGHT
DTSTART:20140330T030000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;BYDAY=5SU;BYMONTH=3
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20141026T020000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYDAY=4SU;BYMONTH=10
TZNAME:CET
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20140807T001736Z
UID:12345
DTSTART;TZID=Europe/Prague:20140808T090000
DTEND;TZID=Europe/Prague:20140808T100000
CREATED:20140805T162858Z
LAST-MODIFIED:20140806T052758Z
SEQUENCE:0
STATUS:confirmed
SUMMARY:My event for which everyone with Outlook will be an hour late to
END:VEVENT
END:VCALENDAR

每个其他日历程序都会在上午 9:00 在布拉格显示此事件,但 Outlook 在上午 10:00 显示它。看来 Outlook 正在使用 VTIMEZONE 中的 STANDARD 块来计算时间并且从不应用 DST 偏移量。我认为这是因为完全删除 STANDARD 块或将 STANDARD 块内的 TZOFFSETTO 更改为 +0200 会导致事件在正确的时间显示。

这两个显然都不是初学者,因为它们会破坏地球上所有其他日历应用程序。

我是否遗漏了有关指定 Outlook 使用时区的内容?

【问题讨论】:

    标签: outlook timezone icalendar dst timezone-offset


    【解决方案1】:

    Outlook 无法处理示例时区中 DAYLIGHT 块的重复规则。

    将VTIMEZONE 定义更改为:

    BEGIN:VTIMEZONE
    TZID:Europe/Prague
    BEGIN:DAYLIGHT
    DTSTART:20140330T030000
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0200
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
    TZNAME:CEST
    END:DAYLIGHT
    BEGIN:STANDARD
    DTSTART:20141026T020000
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0100
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
    TZNAME:CET
    END:STANDARD
    END:VTIMEZONE
    

    允许 Outlook 正确显示事件。

    唯一的变化是将两个 RRULE 定义更改为 BYDAY=-1SU。这具有双重好处,即允许 Outlook 解析它,并且比 5SU/4SU 更正确地扩展了有关 CEST/CET 转换的规则。

    【讨论】:

      【解决方案2】:

      您是否检查了 Outlook 中的时区设置。它可能会显示您从另一个时区看到的事件。 另一种检查方法是从 Outlook 创建一个事件并将其导出到 ics 以查看它用于该事件的时区。

      【讨论】:

      • 我的 Outlook 副本设置为美国东部时区,这意味着该实际事件显示在凌晨 4:00。但它应该在凌晨 3:00 显示,就像在其他所有日历应用程序上一样。我的用户设置为布拉格,并且问题中列出了上午 9 点/上午 10 点的问题。
      猜你喜欢
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 2014-12-21
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多