我有一個程序將日曆約會發送給用戶。但是,這些用戶處於許多不同的時區。當我創建.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" };
很抱歉的混亂,我的意思是,只是發出提醒,看看他們是否能正常工作,我不能做,我可以通過發送給自己並在發送後查看它是否仍然顯示正確時間來更改我的時區來進行測試。我做了什麼,但是時間並沒有顯示正確,根據時區不同,上午8點在費城的預約顯示爲不同的小時數。我的目標是無論它在哪個時區,它都會保持在上午8點。 –
我對你的描述有點困惑,但其實質是這樣的:時區處理的目的是保持約會在UTC時間的*相同*時間===在不同時區的所有不同時間。因此,您實際上可以安排跨時區的電話會議,以及類似的事情。 –
如果*是*你想要的,但它沒有做到,請檢查你的程序是否正在寫入時區。如果導入的ICS不包含時區,Outlook可能會假定時間爲本地時間。 –