2016-08-25 5 views
2

Salut, je suis émigre de DDay.ical à Ical.Net NuGet pacakages mais je suis bloqué dans le code suivant qui ajoutent Fuseau horaire dans le calendrier DDay.Ical s'il vous plaît aiderMigration de DDay.Ical.Net à Ical.Net

Code précédent:

List<DOAppointment> lst = objResponse.Appointments; 
string timeZoneName = objResponse.UserTimezone; 
iCalendar calendar = new DDay.iCal.iCalendar(); 
var timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName); 
calendar.AddTimeZone(iCalTimeZone.FromSystemTimeZone(timeZone)); 

Migration en Ical.Net:

List<DOAppointment> lst = objResponse.Appointments; 
    string timeZoneName = objResponse.UserTimezone; 
    Ical.Net.Calendar calendar = new Ical.Net.Calendar(); 
    var timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName); 
    ITimeZone tzID = timeZone; 
    calendar.AddTimeZone(tzID); 

ici, je sais que calendar.AddTimezone prendra ITimezone mais comment passer je ne reçois pas s'il vous plaît aider.

Répondre

1

VTimeZone est la mise en œuvre concrète de l'interface ITimeZone. L'exemple ical.net ressemblerait à ceci:

var calendar = new Ical.Net.Calendar(); 

// ical.net supports BCL time zones as well as IANA time zones 
calendar.AddTimeZone(new VTimeZone(objResponse.UserTimezone)); 

À l'avenir, je peux changer le constructeur VTimeZone de lancer une exception si la chaîne de fuseau horaire ne correspond pas à quoi que ce soit connu. En ce moment, cependant, c'est assez bête. Dans les coulisses, ical.net utilisera par défaut le fuseau horaire du système sur lequel le code est exécuté, si tout le reste échoue. Ce n'est probablement pas bon.

J'ai aussi ajouté une page wiki avec une adaptation de votre question:

https://github.com/rianjs/ical.net/wiki/Working-with-time-zones

+0

Il fonctionnera même que mon code précédent ont déboguer pas besoin encore faire quelques changements, mais il fera le même droit que le code précédent est écrit par quelqu'un d'autre n je suis juste en train de migrer je ne sais pas beaucoup mais ce que je reçois prend le fuseau horaire de l'utilisateur et par cela obtenir le fuseau horaire du système – Tanmay

+1

Ouais, ces lignes prennent le fuseau horaire d'un utilisateur et essayant de trouver le fuseau horaire de Windows correspondant. ical.net prend en charge un plus large éventail de fuseaux horaires, donc à moins que la personne n'ait fourni une chaîne comme "pas un fuseau horaire réel", vous devriez être OK. Et même dans ce cas, il revient au fuseau horaire du système, de sorte que l'utilisateur peut obtenir des résultats inattendus, mais il n'explose pas au moment de l'exécution. – rianjs