Каков наилучший способ хранения информации о часовом поясе в моей БД?
У меня есть сайт asp.net-mvc, который я взял на себя, и есть страница, где люди вводят информацию и время (включая местный часовой пояс). В базе данных сохраняются время начала, время окончания и часовой пояс, так как мне это кажется немного странным. Вот код для получения списка на выбор:
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;
}
Так что просто хранится полная строка, которая возвращается из TimeZoneInfo.GetSystemTimeZones ()
Есть ли недостатки этого подхода? Я немного обеспокоенчитая здесь что это происходит локально с машины, как будто разные машины имеют разные настройки. Кроме того, пытаясь выяснить, все ли указано как UTC или GMT и т. Д. , Есть лучшие предложения? Например, я должен сделать преобразование в UTC на веб-сайте и нормализовать все время в базе данных?