2014-12-30 6 views
0

Я отправляю запрос от моего .net-приложения (C#), чтобы создать приглашающее приглашение на встречу в Outlook. приглашение на встречу показывало один час во время светового дня (с 8 по 2015 год до 1 ноября 2015 года).Повторяющееся приглашение календаря показывало один час после начала DST

оставшееся время, мой календарь показывает правильное время, и я отправляю ниже код в календарь.

Обратите внимание, что мой источник приложения, использующий EST и пункт назначения, во все часовые пояса.

код для того же.

BEGIN:VCALENDAR 
PRODID:-//Schedule a Meeting 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20150221T120000Z 
DTEND:20150221T123000Z 
LOCATION:XYZ, ABC 
UID:0c5c9c55-851f-462b-bdf2-48df5991561b 
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Test for UTC Time Zone 
SUMMARY:Test for UTC Time Zone 
ORGANIZER:MAILTO:[email protected] 
ATTENDEE;CN="";RSVP=TRUE:mailto:[email protected] 
RRULE:FREQ=Monthly;COUNT=4;BYDAY=3SA 
BEGIN:VALARM 
TRIGGER:-PT15M 
ACTION:DISPLAY 
DESCRIPTION:Reminder 
END:VALARM 
END:VEVENT 
END:VCALENDAR 
+0

Пожалуйста, расскажите, как выглядит это приглашение, и сообщите нам, что Outlook считает своим часовым поясом. Я подозреваю, что проблема в том, что вы указали неправильный часовой пояс. –

+0

См. Редактирующую версию с экранами – Ddev

+0

Это не показало, как выглядит эта информация. Я просил текст приглашения, которое вы прикрепляете ... Обратите внимание, что Outlook явно сообщает вам, что приглашение указывает UTC ... –

ответ

1

Это проблема:

DTSTART: starttime.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z") 
DTEND: Endtime.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z") 

Вы явно с указанием времени начала и окончания в формате UTC, и вы никогда не указать часовой пояс.

Если вы хотите событие быть в часовом поясе, вы должны указать местное время вместо времени UTC (так нет Z в конце) и TZID свойство, чтобы указать часовой пояс. Я предлагаю вам экспортировать некоторые из ваших существующих событий в виде записей, чтобы увидеть, как они выглядят.

Вы можете оставить это значение без какого-либо часового пояса, если вы хотите, чтобы это было «плавающее время», которое будет интерпретироваться в любом местном часовом поясе.

+0

Спасибо за решение, но мне нужно отправить приглашения в часовые пояса разницы, пожалуйста, позвольте мы знаем, как я могу установить DTzone как локальный – Ddev

+0

@Ddev: я отредактировал свой ответ - вы можете пропустить спецификацию часового пояса, если хотите, но вам нужно удалить «Z» ... и удалить «ToUniversalTime» вызовите тоже. –

+0

Я попытался с TZID, а также удалив Z и ToUniversalTIme, но все же приглашение отправлялось с разным временем. для вашей информации, одинарное резервирование работает, и у меня есть проблема только с повторяющимися оговорками. – Ddev

 Смежные вопросы

  • Нет связанных вопросов^_^