Как установить часовой пояс в канале iCal с помощью DDay.iCal? - PullRequest
5 голосов
/ 23 сентября 2010

Я создаю канал iCal, используя DDay.iCal . Это работает, но я не могу понять, как установить часовой пояс для канала. Вот основной код:

iCalendar iCal = new iCalendar();

// <-- Set the Timezone HERE to PST (Pacific Daylight Time)

Event evt = iCal.Create<Event>();

evt.Start = new iCalDateTime(meeting.MeetDate);
evt.End = evt.Start.AddHours(4); // 4 hour event
evt.Description = "This meeting...";
evt.Summary = "Event Summary";

Есть идеи?

Ответы [ 2 ]

9 голосов
/ 07 февраля 2012

В другом ответе автор не упоминает строку над этими тремя строками, как в примере 6:

// First load a file containing time zone information for North & South America
IICalendar timeZones = iCalendar.LoadFromFile("America.ics")[0];

Так что это не сработает.Вариант может быть:

iCalendar iCal = new iCalendar();

System.TimeZoneInfo timezoneinfo = System.TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
iCalTimeZone timezone = iCalTimeZone.FromSystemTimeZone(timezoneinfo);
iCal.AddTimeZone(timezone);

Или просто добавить местный часовой пояс:

iCalendar iCal = new iCalendar();
iCal.AddLocalTimeZone();

Чтобы найти все зарегистрированные часовые пояса, используйте этот фрагмент :

ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("The local system has the following {0} time zones", zones.Count);
foreach (TimeZoneInfo zone in zones.OrderBy(z => z.Id))
    Console.WriteLine(zone.Id);

Console.ReadLine();
3 голосов
/ 24 сентября 2010

Пример 6 в загрузке устанавливает часовые пояса и еще много чего для событий. Проверьте это.

Соответствующие строки:

IICalendar iCal = new iCalendar();
iCal.AddChild(timeZones.GetTimeZone("America/New_York"));
iCal.AddChild(timeZones.GetTimeZone("America/Denver"));            

// Set the event to start at 11:00 A.M. New York time on January 2, 2007.
evt.Start = new iCalDateTime(2007, 1, 2, 11, 0, 0, "America/New_York", iCal)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...