2013-08-07 13 views
12

Używam C#. Potrzebuję uzyskać informacje o lokalnej strefie czasowej dla osoby , która uruchamia aplikację internetową.Uzyskaj czas lokalnyZoneInfo

Zastanawiałem się, czy

TimeZoneInfo tzinfo = TimeZoneInfo.Local; 

    TimeZoneInfo.ConvertTimeFromUtc(result.DueDate.Value, tzinfo); 

jest co do użycia. Ponownie, w zależności od strefy czasowej, w której znajduje się osoba prowadząca aplikację, lubię się zastanawiać.

+6

Powiedziałeś "aplikacja internetowa" - czy próbujesz uzyskać strefę czasową * serwera * lub * klienta *? –

+1

Próbuję uzyskać strefę czasową klienta. –

+0

Oto, jak przekonwertować Data czasu UTC na czas lokalny użytkownika witryny. Sztuką jest skłonienie użytkownika (klienta) do poinformowania serwera, w której strefie czasowej się znajdują, i pozwolić serwerowi na przesunięcie czasu UTC w czasie lokalnym: https://stackoverflow.com/questions/8194016/how-to- get-current-user-timezone-in-c-sharp/30503614 # 30503614 –

Odpowiedz

14

Tak, masz rację, właśnie tego powinieneś użyć. Alternatywą może być

TimeZone localZone = TimeZone.CurrentTimeZone; 

ale właściwość CurrentTimeZone odpowiada właściwości TimeZoneInfo.Local tak naprawdę nie ma różnicy.

Wyświetla nazwy dla standardowego czasu i czasu letniego dla lokalnej strefy czasowej.

+3

Możesz chcieć wyjaśnić, że to zwraca lokalną strefę czasową komputera obsługującego proces, a niekoniecznie "osoba, która uruchamia aplikację internetową". – Mayo

+0

Dzięki. Korzystam z TimeZoneInfo.ConvertTimeFromUtc na edytowanej wersji powyżej. Daj mi znać, jeśli to jest najlepsze podejście. Dziękuję Ci. –

+0

Chcesz informacji o strefie czasowej cliens lub serwera? – Ehsan

Powiązane problemy