MS Outlook 错误地解释本地时间的 ICS 文件:夏令时修正过度
有谁知道 ICS 文件中指定所有时间均以该位置的当地时间写入的方法吗?我认为将“Z”保留在时间末尾,并在 DTSTART 和 DTEND 行中使用 TZID="America/Denver"(例如)可以实现此目的,但 MS Outlook 假定所有时间均采用该位置的标准时间。我的活动都考虑了夏令时。
我是否必须重写应用程序以便时间采用 UTC 格式?
我是否必须在开头包含一个定义任何时区的块?这很困难,因为我想支持 Olson 数据库中的每个时区。
但目前 MS Outlook 将夏令时期间的每个约会提前一小时,这是错误的。
预先感谢您的任何帮助。
Does anyone know a way in an ICS file to specify that all times are written in the local time at the location? I thought that leaving the 'Z' off the end of times, and using the TZID="America/Denver" (for example) in DTSTART and DTEND lines accomplished this, but MS Outlook assumes that all times are in the location's standard time. My events all take daylight savings time into account.
Do I have to rewrite the app so times are in UTC?
Do I have to include a block at the beginning that defines any time zone? This is difficult since I want to support every time zone in the Olson database.
But currently MS Outlook pushes every appointment that's during daylight savings time forward one hour, which is wrong.
Thanks in advance for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我遇到了与此非常相似的问题,我做了很多研究,但解决方案仍然不是最好的。我不知道为什么 Outlook 不能正确处理当地时间,这使得为其他时区安排当地时间约会成为一个很大的麻烦。 标准明确指出,如果未指定时区,则 UTC 'Z'不使用字符,那么无论接收者位于哪个时区,时间都应该是相同的。但是,Outlook 不遵守这一点,并根据发送客户端时间和时间更改时间。接待客户时间。
就我而言,我正在运行一个站点,该站点允许某些用户安排其他用户进行约会。这些用户可以位于许多不同的时区。对我来说幸运的是,该网站专门托管在一个时区。因此,我的解决方案是编写一个简单的 C# switch 语句,根据接收用户相对于服务器所在位置的位置来偏移时间。我没有在 .ics 文件中指定时区,并且我没有通过“Z”字符将时间标记为 UTC。
I had a very similar problem to this, and I did a lot of research but the solution still isn't the best. I'm not sure why Outlook doesn't handle local times correctly, it makes scheduling local time appointments for other time zones a big hassle. The standard clearly indicates that if no time zone is specified, and the UTC 'Z' character isn't used, then the time should be the same no matter what time zone the receiver is in. However, Outlook doesn't adhere to this, and changes the time depending on the sending client time & receiving client time.
In my case I have a site running which allows certain users to schedule other users for appointments.These users can be located in many different time zones. Luckily for me, the site is specifically hosted in just one time zone. Thus, my solution was to write a simple c# switch statement that offsets the time based on where the receiving user is relative to where the server is. I don't specify a time zone in the .ics file, and I don't mark the time as UTC via the 'Z' character.