Jak poprawnie pracować ze strefą czasową?

Dużo czytamstrefa czasowa, offsetowy, utc, czas lokalny, funkcje javascript, DST, boczek i staram się to wszystko połączyć, aby zbudować solidną / poprawną strukturę dla mojej aplikacji.

Załóżmy, że moja aplikacja jest podobna do StackOverflow.

Tak właśnie robię ...

Serwer znajduje się w innym kraju, więc ustawiłem go na UTC 00:00.Przechowuję datę jakoDateTimeOffset.Jestemnie przechowywanieTimeZoneID.Data jest wysyłana do klienta w tym formacie:2012-07-19T14:30:00-03:00.Używam filtra kątowego, aby przekonwertować go na czas lokalny.

Mam kilka pytań na ten temat ...

1º Strefa czasowa serwera?

O moim serwerze (pojedynczy serwer) ... czy powinien działać z „neutralnym” UTC (+00: 00)? A jeśli w przyszłości przeprowadzimy się na farmę, w której serwery działają w różnych lokalizacjach?

2º Co powinienem przechowywać?

Obecnie przechowuję tylko datę jakoDateTimeOffset. Czytam o zapisaniuTimeZoneID ale nie widzę w tym żadnego zastosowania. Czy czegoś mi brakuje?

Lub powinienem przechowywać datę jakoDateTimeUtc zTimeZoneID i ręcznie konwertuj każdą datę za pomocąTimeZone klasa?

3º Jak przekonwertować na czas lokalny?

Czy konwersja danych na kliencie jest bezpieczna? Lub konwersje daty powinny być zawsze po stronie serwera?

4º O DST.

Korzystanie z mojego obecnego podejścia. Czy DST będzie przestrzegane?

questionAnswers(2)

yourAnswerToTheQuestion