Jaki jest najlepszy sposób przechowywania informacji o strefie czasowej w moim DB?

Mam stronę internetową asp.net-mvc, którą przejąłem, i jest strona, na której ludzie wprowadzają informacje i czasy (w tym lokalna strefa czasowa). Baza danych utrzymuje czas rozpoczęcia, czas zakończenia i strefę czasową, ponieważ jest dla mnie trochę niestabilna. Oto kod, z którego można wybrać listę:

  static private IEnumerable<SelectListItem> GetTimeZones(string selected)
    {
        var timeZoneNames = TimeZoneInfo.GetSystemTimeZones()
            .Where(tz => tz.DisplayName.Contains("London")
                         || tz.DisplayName.Contains("Hong Kong")
                         || tz.DisplayName.Contains("Mumbai")
                         || tz.DisplayName.Contains("Eastern Time"))
            .ConvertAll(tz => tz.DisplayName).ToList();

        var items = new List<SelectListItem>();
        foreach (var item in timeZoneNames)
        {
            var slItem = new SelectListItem();
            slItem.Text = item;
            slItem.Value = item;
            slItem.Selected = item == selected;
            items.Add(slItem);
        }

        return items;
    }

Po prostu zapisuje pełny ciąg zwracany przez TimeZoneInfo.GetSystemTimeZones ()

Czy są jakieś wady w tym podejściu? Jestem trochę zaniepokojonyczytanie tutaj że przychodzi to lokalnie z maszyny, co jeśli różne maszyny mają różne ustawienia. Ponadto, próbując dowiedzieć się, czy wszystko jest wymienione jako UTC lub GMT itp. . Jakieś lepsze sugestie? Na przykład, czy powinienem dokonać konwersji na UTC na stronie internetowej i znormalizować wszystkie czasy w bazie danych?

questionAnswers(1)

yourAnswerToTheQuestion