Was für ein Zufall, da bin ich momentan auch grade dran: Auf einer Kiosk-Anwendung soll der Inbetriebnehmer jetzt auch die lokale Zeitzone einstellen können.
Die im System vorhandenen Zeitzonen findet man anscheinend wirklich nur, wie schon genannt, in der Registry. Dort musst du den Binarblob auslesen und kannst dir anhand der zwei weiteren Schlüssel dort wieder die Zeitzone zusammenbasteln.
Wenn man auf die .NET-Gegenseite guckt, kann man echt wieder neidisch werden, da ist alles schon fertig.
TimeZoneInfo.GetSystemTimeZones() und gut ist (sogar schon sortiert).
Wenn du noch einen Tag wartest, habe ich das fertig. Wenn du nur wissen willst was deine aktuelle Zeitzone ist, das steht auch schon unter
System.DateUtils.TTimeZone.Local
.
Die lokale Zeitzone zu ändern ist etwas kniffeliger, da musste man, meine ich, noch vorher wieder an diesen komischen Prozess-Privilegien drehen. Bis morgen kann ich das mal alles zusammenstellen.