有没有人知道ICS文件中的一种方式来指定所有时间都是在当地时间写入的?我认为在时间结束时保留“Z”,并在DTSTART和DTEND行中使用TZID =“America / Denver”(例如)完成此操作,但MS Outlook假定所有时间都在该位置的标准时间内。我的活动都考虑了夏令时。
我是否必须重写应用程序才能使用UTC格式?
我是否必须在开头定义任何时区的块?这很困难,因为我想支持Olson数据库中的每个时区。
但是目前MS Outlook将夏令时期间的每次约会推进一小时,这是错误的。
提前感谢您的帮助。
答案 0 :(得分:3)
我遇到了一个非常类似的问题,我做了很多研究,但解决方案仍然不是最好的。我不确定为什么Outlook不能正确处理本地时间,这使得为其他时区安排本地时间约会变得非常麻烦。 standard清楚地表明,如果没有指定时区,并且未使用UTC'Z'字符,那么无论接收器处于什么时区,时间都应该相同。但是,Outlook不会坚持这一点,并根据发送客户端的时间和时间来改变时间。接收客户时间。
在我的情况下,我有一个网站运行,允许某些用户安排其他用户进行约会。这些用户可以位于许多不同的时区。幸运的是,该网站专门在一个时区内托管。因此,我的解决方案是编写一个简单的c#switch语句,根据接收用户相对于服务器所在的位置来抵消时间。我不在.ics文件中指定时区,我不通过'Z'字符将时间标记为UTC。