【问题标题】:MS Outlook incorrectly interprets ICS files in local time: daylight savings time overcorrectionMS Outlook 错误地解释本地时间的 ICS 文件:夏令时过度校正
【发布时间】:2011-04-29 17:57:23
【问题描述】:

有没有人知道在 ICS 文件中指定所有时间都以该位置的本地时间写入的方法?我认为在时间结束时保留“Z”,并在 DTSTART 和 DTEND 行中使用 TZID="America/Denver" (例如)可以实现这一点,但 MS Outlook 假定所有时间都在该位置的标准时间。我的活动都考虑了夏令时。

我是否必须重写应用程序以使时间以 UTC 为单位?

我是否必须在开头包含一个定义任何时区的块?这很困难,因为我想支持 Olson 数据库中的每个时区。

但目前 MS Outlook 将夏令时期间的每个约会都提前一小时,这是错误的。

提前感谢您的帮助。

【问题讨论】:

  • 我也很想听到答案。我认为有两个选项:1)如果可能,在文件本身中配置与时区无关的开始时间 2)检查用户的时区服务器端并在运行时提供特定的 .ics 文件。

标签: outlook calendar timezone


【解决方案1】:

我有一个非常相似的问题,我做了很多研究,但解决方案仍然不是最好的。我不确定为什么 Outlook 不能正确处理当地时间,这使得安排其他时区的当地时间约会变得很麻烦。 standard 明确表示如果没有指定时区,并且没有使用 UTC 'Z' 字符,那么无论接收者在哪个时区,时间都应该是相同的。但是,Outlook 不遵守到此,并根据发送客户端时间和接收客户端时间更改时间。

就我而言,我有一个网站正在运行,它允许某些用户安排其他用户进行约会。这些用户可以位于许多不同的时区。对我来说幸运的是,该网站专门托管在一个时区。因此,我的解决方案是编写一个简单的 c# switch 语句,根据接收用户相对于服务器的位置来偏移时间。我在 .ics 文件中指定时区,并且我通过“Z”字符将时间标记为 UTC。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-03
    • 2020-01-13
    • 2012-07-24
    • 2014-11-30
    • 2017-08-29
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多