Я пытаюсь назначить встречу с Outlook с веб-сайта ASP.NET. Я нашел код для отправки этого здесь и попытался его реализовать. Но по неизвестной причине он не работает должным образом.
Мой сервер, на котором запущен код, находится в часовом поясе США / Центрального. Я хочу отправить эту встречу клиентам, которые находятся в Лондоне. Итак, здесь есть проблема с переходом на летнее время, которую необходимо решить.
Я не нашел какого-либо понятного объяснения относительно строк, составляющих встречу. Я думаю, что проблему с часовым поясом можно решить с помощью TZOFFSETFROM
и TZOFFSETTO
, но поскольку я не знаю, как эти вещи работают, я не мог понять, что делать.
Можно. кто-нибудь, пожалуйста, объясните эти вещи простым английским языком?
Edit
Вот часть строки, которая используется для вычисления часового пояса -
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
, в какое время он будет отображаться у клиента » s Outlook, кто находится в Лондоне?
Second Edit
Хорошо, теперь я понимаю, что этот 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
, или я должен всегда указывать стандартное время, и оно будет автоматически настроено на летнее время?