Wie speichere ich Zeitzoneninformationen am besten in meiner Datenbank?

Ich habe eine asp.net-mvc-Website, die ich übernommen habe, und es gibt eine Seite, auf der Leute Informationen und Zeiten eingeben (einschließlich der lokalen Zeitzone). Die Datenbank besteht aus einer Startzeit, einer Endzeit und einer Zeitzone, da sie sich für mich etwas unübersichtlich anfühlt. Hier ist der Code, aus dem Sie die Liste auswählen können:

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

Es wird also einfach die vollständige Zeichenfolge gespeichert, die von TimeZoneInfo.GetSystemTimeZones () zurückgegeben wird.

Gibt es irgendwelche Mängel bei diesem Ansatz? Ich bin ein bisschen besorgthier lesen dass dies lokal von der Maschine kommt, als ob verschiedene Maschinen unterschiedliche Einstellungen haben. Versuchen Sie auch herauszufinden, ob alles als UTC oder GMT usw. Aufgeführt ist. . Bessere Vorschläge? Soll ich zum Beispiel die Umstellung auf UTC auf der Website durchführen und alle Zeiten in der Datenbank normalisieren?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage