我想從ASP.NET網站發送Outlook約會。我找到了發送這個here的代碼,並試圖實現它。但由於某些未知原因,它無法正常工作。TZOFFSETFROM和TZOFFSETTO意味着什麼
運行代碼的服務器位於US/Central時區。我想把這個任命發給倫敦的客戶。所以這裏有一個夏令時問題,需要解決。
我還沒有找到關於組成預約的字符串的任何可以理解的解釋。我認爲時區問題可以通過TZOFFSETFROM
和TZOFFSETTO
來解決,但由於我不知道這些工作是如何工作的,所以我不明白該怎麼做。
有人可以用簡單的英語解釋這些東西嗎?
編輯
這裏是正在使用的計算時區字符串的一部分 -
string timezone = "BEGIN:VTIMEZONE"
+ "\r\n" + "TZID:US/Central"
+ "\r\n" + "X-MICROSOFT-CDO-TZID:11"
+ "\r\n" + "BEGIN:STANDARD"
+ "\r\n" + "DTSTART:16010101T020000"
+ "\r\n" + "TZOFFSETFROM:-0500"
+ "\r\n" + "TZOFFSETTO:-0600"
+ "\r\n" + "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU"
+ "\r\n" + "END:STANDARD"
+ "\r\n" + "BEGIN:DAYLIGHT"
+ "\r\n" + "DTSTART:16010101T020000"
+ "\r\n" + "TZOFFSETFROM:-0600"
+ "\r\n" + "TZOFFSETTO:-0500"
+ "\r\n" + "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU"
+ "\r\n" + "END:DAYLIGHT"
+ "\r\n" + "END:VTIMEZONE";
下面這兩個屬性(我並不確切地知道他們的類型名稱,所以我用「屬性」指向他們,我的道歉)在兩個地方使用,第一次在BEGIN:STANDARD
之後,BEGIN:DAYLIGHT
之後。爲什麼?如果我在BEGIN:VEVENT
區塊中指定DTSTART;TZID=US/Central:20101006T100000Z
的開始日期,那麼客戶在倫敦展望的時間是幾點?
第二個編輯
OK,現在我明白,這VTIMEZONE
定義一個特定的時區。指定時區後,我需要在VEVENT
部分指定日曆的時間,即。現在應該是現在的時間嗎?我的意思是,在指定時間時,我應該考慮夏令時,還是從該時區獲取當前時間並在那裏使用?
第三編輯
我應該在以下塊指定什麼時候 -
string event = "BEGIN:VEVENT"
+ "\r\n" + "DTSTAMP:{8}"
+ "\r\n" + "DTSTART;TZID=US/Central:{0}" // What time should I specify here?
+ "\r\n" + "SUMMARY:{7}"
.................
我應該考慮夏令指定DTSTART
的時候,還是應該始終指定標準時,它會自動調整爲夏令時?
你可以看看編輯? – 2010-10-06 12:13:49
閱讀本文,它將有助於加載:http://www.kanzaki.com/docs/ical/vtimezone.html – Lazarus 2010-10-06 13:00:29
是的,閱讀它。這真的很有幫助。我知道它指定了一個時區信息。我只需要知道,如果我指定時區的所有信息,那麼我需要在VEVENT塊中提供什麼時間?我的意思是,我應該在夏令時開始時指定夏令時,還是應該始終指定標準時間,並且會自動根據夏令時進行調整? – 2010-10-06 13:05:11