2011-04-02 5 views
0

je travaillais avec la classe TimeZoneInfo et iFound des choses étranges, après mon scénarioquestion concernant fuseau horaire

Temps stocké dans UTC: {3/29/2011 11:30:00}

Maintenant, quand Je commencé à convertir en fuseau horaire respectif de l'utilisateur avec les deux méthodes suivantes:

TimeZoneInfo.ConvertTimeFromUtc(date,TimeZoneInfo.ConvertTimeToUtc,{(UTC-05:00) Eastern Time (US & Canada)} 
Output: {3/29/2011 6:30:00 AM} 

chemin Second:

int offset= 
    Convert.ToInt32(,{(UTC-05:00) Eastern Time (US & Canada)} 
).BaseUtcOffset.TotalMinutes); 

dateTime.AddMinutes(offset); 

Output:+ {3/29/2011 7:30:00 AM} 

Maintenant que vous avez vu il y a une différence entre ces deux temps, puis-je savoir pourquoi la différence vient en faisant dans les deux sens?

Répondre

4

ConvertTimeFromUtc prend en compte les règles d'ajustement pour l'heure d'été lors de la conversion, tandis que BaseUtcOffset renvoie le décalage de base du fuseau horaire (sans aucune règle d'ajustement). Si vous voulez le décalage UTC pour une heure particulière (y compris les règles d'ajustement en vigueur), utilisez GetUtcOffset.