Comment définir le fuseau horaire dans un stream iCal à l’aide de DDay.iCal?

Je crée un stream iCal à l’aide de DDay.iCal . Cela fonctionne, mais je ne vois pas comment définir le fuseau horaire du stream. Voici le code de 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"; 

Des idées?

Dans l’autre réponse, l’auteur omet de mentionner la ligne au-dessus de ces trois lignes qui est dans l’exemple 6:

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

Donc ça ne marchera pas. Une option serait:

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

Ou ajoutez simplement le fuseau horaire local:

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

Pour trouver tous les fuseaux horaires enregistrés, utilisez cet extrait :

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

Exemple6 dans le téléchargement définit les fuseaux horaires et d’autres événements. Vérifiez cela.

Lignes pertinentes:

 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)