2014-05-30 2 views
2

Я использую DDay.iCal отправить событие, которое должно быть получено с помощью Outlook, 2013. Это часть кода, где я устанавливаю даты:Как установить временные зоны с DDay.iCal

evt.Created = new iCalDateTime(DateTime.Now); 
evt.LastModified = new iCalDateTime(DateTime.Now); 
evt.UID = Guid.NewGuid().ToString(); 
evt.DTStamp = new iCalDateTime(DateTime.Now); 
evt.Duration = TimeSpan.FromHours(4); 
evt.DTEnd = new iCalDateTime(DateTime.Now.AddHours(4)); 

Когда Я получаю запрос на соответствующее собрание в Outlook 2013, я получаю это:

организатор создал эту встречу в следующей временной зоне: (UTC) Монровия, Reykjavik

Какие часовые пояса можно установить? Я попробовал несколько, например:

evt.Created = new iCalDateTime(DateTime.Now, "GMT"); 
evt.LastModified = new iCalDateTime(DateTime.Now, "GMT"); 
evt.UID = Guid.NewGuid().ToString(); 
evt.DTStamp = new iCalDateTime(DateTime.Now, "GMT"); 
evt.Duration = TimeSpan.FromHours(4); 
evt.DTEnd = new iCalDateTime(DateTime.Now.AddHours(4), "GMT"); 

... и ...

evt.Created = new iCalDateTime(DateTime.Now, "Eastern Standard Time"); 
evt.LastModified = new iCalDateTime(DateTime.Now, "Eastern Standard Time"); 
evt.UID = Guid.NewGuid().ToString(); 
evt.DTStamp = new iCalDateTime(DateTime.Now, "Eastern Standard Time"); 
evt.Duration = TimeSpan.FromHours(4); 
evt.DTEnd = new iCalDateTime(DateTime.Now.AddHours(4), "Eastern Standard Time"); 

Когда я делаю это, вместо запроса на собрание в Outlook 2013 я получаю письмо с приложение под названием not supported calendar message.ics.

Как я могу установить часовой пояс правильно (или, по крайней мере, некоторые настройки по умолчанию, чтобы Outlook не показывал сообщение, упомянутое ранее)?

Edit: Ниже приводится содержимое файла .ics:

BEGIN:VCALENDAR 
VERSION:2.0 
METHOD:REQUEST 
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN 
BEGIN:VEVENT 
CREATED:20140602T094431 
DESCRIPTION:Test test 
DTEND:20140602T134431 
DTSTAMP:20140602T074431Z 
DTSTART:20140602T094431 
LAST-MODIFIED:20140602T094431 
ORGANIZER:mailto:[email protected] 
PRIORITY:3 
SEQUENCE:1 
SUMMARY:Test 2 
UID:df6b9f7c-2986-49f1-8b46-78d50193904c 
BEGIN:VALARM 
ACTION:Display 
DESCRIPTION:Reminder 
DURATION:PT15M 
TRIGGER:PT15M 
END:VALARM 
END:VEVENT 
END:VCALENDAR 
+0

Укажите, пожалуйста, содержимое одного из сгенерированных файлов .ics? Откройте файл в текстовом редакторе и разместите его. – Jamleck

+0

См. Отредактированный вопрос. – Gigi

ответ

2

This answer решить эту проблему для меня. Решение заключается в использовании:

iCal.AddLocalTimeZone(); 

Также можно установить произвольные временные зоны, основанные на системе часовых поясов ... видеть, что ответ на детали.