Come faccio a impostare il fuso orario in un feed iCal utilizzando DDay.iCal?

Sto creando un feed iCal usando DDay.iCal . Funziona, ma non riesco a capire come impostare il fuso orario per il feed. Ecco il codice di base:

iCalendar iCal = new iCalendar(); // <-- Set the Timezone HERE to PST (Pacific Daylight Time) Event evt = iCal.Create(); evt.Start = new iCalDateTime(meeting.MeetDate); evt.End = evt.Start.AddHours(4); // 4 hour event evt.Description = "This meeting..."; evt.Summary = "Event Summary"; 

Qualche idea?

Nell’altra risposta, l’autore non menziona la riga sopra quelle tre linee nell’esempio 6:

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

Quindi non funzionerà. Un’opzione sarebbe:

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

O semplicemente aggiungi il fuso orario locale:

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

Per trovare tutti i fusi orari registrati, utilizzare questo snippet :

 ReadOnlyCollection 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(); 

L’esempio 6 nel download sta impostando i fusi orari e quant’altro per gli eventi. Controllalo.

Linee rilevanti:

 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 AM New York time on January 2, 2007. evt.Start = new iCalDateTime(2007, 1, 2, 11, 0, 0, "America/New_York", iCal)