Что означают TZOFFSETFROM и TZOFFSETTO - PullRequest
5 голосов
/ 06 октября 2010

Я пытаюсь отправить встречу 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, или я всегда должен указывать стандартное время, и оно будет автоматически скорректировано с учетом летнего времени?

1 Ответ

10 голосов
/ 06 октября 2010

TZOFFSETFROM - это смещение местного времени от GMT, когда действует летнее время, TZOFFSETTO - это смещение местного времени от GMT, когда работает стандартное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...