J'ai un tas de dates que je garde la trace de mon application. Ils sont tous en temps UTC. Pour une partie de mon application, je veux envoyer un e-mail avec l'un de ces moments, mais édité pour être dans ce fuseau horaire spécifique.C# Datetimes: Conversion pour différents fuseaux horaires
Il n'y a que deux grands domaines que je traiterai, la côte est et au Texas (Dallas et Huston)
Je peux aussi faire une nouvelle datetime lorsque j'envoyer cet e-mail pour obtenir le fuseau horaire de l'Est (DateTime timestamp = DateTime.Now;
)
ma question est la suivante:
Si l'utilisateur se trouve dans la région du Texas comment puis-je convertir mon temps de l 'est à ce moment-là (1 heure de moins)?
J'ai essayé quelque chose comme ceci:
//Convert timestamp to local time
TimeSpan ts = TimeZone.CurrentTimeZone.GetUtcOffset(timestamp);
timestamp.Add(ts);
timestampString = timestamp.ToString();
Mais cela ne fonctionne pas. Je sais également que cette ligne n'est pas valide:
timestamp.Hour = timestamp.Hour - 1;
Vous devez éviter DateTime.Now et utiliser à la place DateTime.UtcNow. DateTime.Now peut vous surprendre un jour, soit avec le mauvais fuseau horaire, soit avec une mauvaise heure d'été. –