Qual é a melhor maneira de armazenar informações de fuso horário no meu banco de dados?

Eu tenho um site asp.net-mvc que eu assumi e há uma página onde as pessoas inserem informações e horários (incluindo o fuso horário local). O banco de dados está mantendo uma hora de início, uma hora de término e um fuso horário, já que parece um pouco esquisito para mim. Aqui está o código para obter a lista para escolher:

  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;
    }

Então é simplesmente armazenar a string completa que é retornada de TimeZoneInfo.GetSystemTimeZones ()

Existem falhas com essa abordagem? Estou um pouco preocupadolendo aqui que isso vem localmente da máquina como se diferentes máquinas tivessem configurações diferentes. Além disso, tentando descobrir se tudo está listado como UTC ou GMT, etc. . Alguma sugestão melhor? Por exemplo, devo fazer a conversão para UTC no site e normalizar todas as vezes no banco de dados?

questionAnswers(1)

yourAnswerToTheQuestion