5

我有一个向用户发送日历约会的程序。然而,这些用户位于许多不同的时区。当我创建 .ics 文件时,我将时区设置为本地时区,因为它们是在这里安排的。然后将它们发送给分散在许多时区的用户。

Outlook 会正确处理这个问题吗?如:如果我安排一个人参加上午 8 点的会议,而我在费城,则应该在任何其他时区为他们安排上午 8 点的会议。

我知道 Outlook 在一定程度上适用于时区,但我找不到任何好的文档。

编辑: 我真的应该问更多关于你如何格式化它以正确处理这个问题,这是我目前使用的格式。但是我对此没有什么经验,所以我可能做错了:

String[] iCalArr = {   "BEGIN:VCALENDAR",
                            "PRODID:-//foobar//morefoobar//EN",
                            "VERSION:2.0",
                            "CALSCALE:GREGORIAN",
                            "METHOD:REQUEST",
                            "BEGIN:VTIMEZONE",
                                "TZID:America/New_York",
                                "X-LIC-LOCATION:America/New_York",
                                "BEGIN:DAYLIGHT",
                                    "TZOFFSETFROM:-0500",
                                    "TZOFFSETTO:-0400",
                                    "TZNAME:EDT",
                                    "DTSTART:19700308T020000",
                                    "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU",
                                "END:DAYLIGHT",
                                "BEGIN:STANDARD",
                                    "TZOFFSETFROM:-0400",
                                    "TZOFFSETTO:-0500",
                                    "TZNAME:EST",
                                    "DTSTART:19701101T020000",
                                    "RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU",
                                "END:STANDARD",
                            "END:VTIMEZONE",
                            "BEGIN:VEVENT",
                                "DTSTART;TZID=America/New_York:" + strBeginDate, 
                                "DTEND;TZID=America/New_York:" + strEndDate, 
                                "DTSTAMP:" + strNow,
                                "UID:DT 2012 Training - " + System.Guid.NewGuid().ToString(),
                                "RECURRENCE-ID;TZID=America/New_York:20110207T103000",
                                "CREATED:" + strNow,
                                "DESCRIPTION;ENCODING=QUOTED-PRINTABLE:foobar",
                                "LAST-MODIFIED:" + strNow,
                                "LOCATION:" + location, 
                                "SEQUENCE:1",
                                "STATUS:TENTATIVE",
                                  "SUMMARY:foobar",
                                "TRANSP:OPAQUE",
                              "END:VEVENT", "END:VCALENDAR" };
4

2 回答 2

4

假设您的特定应用程序写出正确的时区信息,Outlook 应该可以处理得很好。或者 perhpaps 在 UTC 中工作,并用 Z 区标记所有内容。

我对你所说的“测试不是一种选择”感到困惑。我可以想象身份不明的“程序”无法写出测试数据,但您的问题表明您担心Outlook。当然,您可以手动编辑一些具有不同时区的 ICS 文件并将它们提供给 Outlook?这应该清楚地表明 Outlook 知道如何处理它们。

于 2012-06-15T18:24:46.613 回答
0

是的 Outlook 处理时区,KB 中的这篇文章实际上表明了一个限制,即每次更改时区(DST,...)时都需要更新 Outlook:http: //support.microsoft.com/kb/931667

于 2012-06-15T18:27:54.210 回答