2010-07-23 4 views
5

Comment puis-je convertir un DateTime de EST/EDT à GMT mais je ne sais pas où le code sera exécuté (fuseau horaire local inconnu) et également prendre en compte le gain de temps ...convertir de EST/EDT à GMT

+0

Question connexe - http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices – Oded

Répondre

7

Vous voulez TimeZoneInfo.ConvertTimeToUtc(), ce qui vous permet de transmettre l'information de fuseau horaire source en tant que paramètre. Par exemple:

TimeZoneInfo est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); 
DateTime someDateTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(someDateTime, est); 

Je pense cela va gérer automatiquement l'heure d'été, mais vous aurez envie de le tester pour être sûr.

+0

désolé je veux dire l'heure de l'est donc il pourrait être EST ou EDT (heure avancée de l'Est) – Comma

+0

il a planté lorsque j'ai utilisé l'heure de l'Est – Comma

+0

Yup ... si vous regardez les docs, puis regardez dans votre registre (où FindSystemTimeZoneInfoById() fait sa recherche), vous verrez que la clé "Eastern Standard Time" a une Sous-clé "Dynamic DST" ... donc * j'espère * que l'appel ConvertTimeToUtc() utilisera le besoin. – JaredReisinger

0

Jetez un oeil à la classe TimeZoneInfo.

Questions connexes