Mam kilka dat, które śledzę dla mojej aplikacji. Wszystkie są w czasie UTC. W przypadku części mojej aplikacji chcę wysłać wiadomość e-mail z jednym z tych terminów, ale edytuję ją w tej określonej strefie czasowej.C# Datetimes: Konwersja dla różnych stref czasowych
Istnieją tylko dwa główne obszary, które będę czynienia, wschodnie wybrzeże i Texas (Dallas i Huston)
Mogę też zrobić nowy datetime kiedy wysłać tego e-maila, aby uzyskać strefę czasową wschodnią (DateTime timestamp = DateTime.Now;
)
Moje pytanie jest takie:
Jeżeli użytkownik znajduje się w obszarze texas jaki sposób można przekonwertować mój czas od wschodniej do tego czasu (1 godzina mniej)?
Próbowałem coś takiego:
//Convert timestamp to local time
TimeSpan ts = TimeZone.CurrentTimeZone.GetUtcOffset(timestamp);
timestamp.Add(ts);
timestampString = timestamp.ToString();
Ale to nie działa. Wiem też, że ta linia jest nieprawidłowa:
timestamp.Hour = timestamp.Hour - 1;
Należy unikać DateTime.Now i zamiast używać DateTime.UtcNow. DateTime.Now może Cię zaskoczyć pewnego dnia, z niewłaściwą strefą czasową lub złą oszczędnością czasu letniego. –