Ich bin auf der Suche nach einer Funktion mit einer Signatur etwa wie die folgende zu implementieren:
bool IsTimeZoneValid(string countryCode, DateTime localTime);
Es geht darum festzustellen, ob das Land eine Zeitzone hat, in der die Ortszeit gültig ist, wenn wir die aktuelle UTC-Zeit kennen. Nehmen wir einmal an, dass "gültig" bedeutet, dass die in UTC umgerechnete Zeit +/- 30 Minuten von der Zeit abweicht, die wir glauben.
Nehmen wir zum Beispiel an, es ist der 03/08/2009 18:25:00 UTC, dann sollte der folgende Methodenaufruf für Australien zurückgegeben werden true
da dies eine gültige Zeit in der Zone "Eastern Standard Time" ist:
IsTimeZoneValid("AU", DateTime.Parse("04/08/2009 03:25:00"));
Der folgende Anruf für Frankreich sollte jedoch fehlschlagen, da dies keine gültige Zeit in der französischen Zeitzone ist.
IsTimeZoneValid("FR", DateTime.Parse("04/08/2009 03:25:00"));
Diese muss genau sein und die Sommerzeit usw. berücksichtigen.
.NET 3.5 enthält die neue TimeZoneInfo
Klasse, die einen Großteil der Konvertierung für mich übernehmen kann, wenn ich weiß, welche Zeitzonen es in einem bestimmten Land gibt, aber ich kann anscheinend keine eingebaute Suchfunktion dafür finden. Übersehe ich etwas, oder muss ich manuell eine Tabelle mit den Zuordnungen zwischen Land und Zeitzone erstellen?
Um es noch einmal zu wiederholen, meine Frage lautet: Wie kann ich mit einem Ländercode eine Liste von Zeitzonen erhalten? Oder gibt es eine andere Möglichkeit, dies zu tun, die ich übersehen habe?