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?