2012-06-15 149 views
4

我有一個程序將日曆約會發送給用戶。但是,這些用戶處於許多不同的時區。當我創建.ics文件時,我將時區設置爲本地時區,因爲它們在此處計劃。然後他們會被髮送給分散在多個時區的用戶。Outlook是否正確處理.ics(ICalendar)文件的時區?

請問前臺能正確處理?如:如果我安排一個人參加上午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" }; 

回答

3

展望應該處理得很好,假設特定的應用程序寫出正確的時區信息。或者perhpaps以UTC工作,並用Z區標記所有內容。

我很困惑你的評論「測試不是一個選項」。我可以想象未識別的「程序」無法寫出測試數據,但您的問題表明您擔心Outlook。當然你可以用不同的時區來處理一些ICS文件並將它們提供給Outlook?這應該清楚地表明,Outlook知道如何處理它們。

+0

很抱歉的混亂,我的意思是,只是發出提醒,看看他們是否能正常工作,我不能做,我可以通過發送給自己並在發送後查看它是否仍然顯示正確時間來更改我的時區來進行測試。我做了什麼,但是時間並沒有顯示正確,根據時區不同,上午8點在費城的預約顯示爲不同的小時數。我的目標是無論它在哪個時區,它都會保持在上午8點。 –

+0

我對你的描述有點困惑,但其實質是這樣的:時區處理的目的是保持約會在UTC時間的*相同*時間===在不同時區的所有不同時間。因此,您實際上可以安排跨時區的電話會議,以及類似的事情。 –

+0

如果*是*你想要的,但它沒有做到,請檢查你的程序是否正在寫入時區。如果導入的ICS不包含時區,Outlook可能會假定時間爲本地時間。 –