Я пытаюсь отправить встречу Outlook с веб-сайта ASP.NET.Я нашел код для отправки этого здесь и попытался реализовать его.Но по неизвестной причине он не работает должным образом.
Мой сервер, на котором выполняется код, находится в часовом поясе США / Центральная.Я хочу отправить это назначение клиентам, которые находятся в Лондоне.Таким образом, здесь существует проблема перехода на летнее время, которую необходимо решить.
Я не нашел понятного объяснения о строках, которые составляют назначение.Я думаю, что проблема с часовым поясом может быть решена с помощью 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
.Зачем?Если я укажу начальную дату DTSTART;TZID=US/Central:20101006T100000Z
в блоке BEGIN:VEVENT
, во сколько он, по мнению клиента, покажет, кто находится в Лондоне?
Второе редактирование Хорошо, теперь я понимаю, что это VTIMEZONE
определяет конкретный часовой пояс.После указания часового пояса мне нужно указать время для календаря в разделе VEVENT
, которое равно DTSTART;TZID=US/Central:20100101T100000
.Теперь это время должно быть текущим временем?Я имею в виду, при указании времени я должен учитывать летнее время или просто получить текущее время из этого часового пояса и использовать его там?
Третье редактирование
Сколько времени следуетЯ указываю в следующем блоке -
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
, или я всегда должен указывать стандартное время, и оно будет автоматически скорректировано с учетом летнего времени?