Holen Sie sich die Standard-Zeitzone für ein Land (über CultureInfo)
Gibt es ein Programm oder eine Tabelle, liefert die Standard-Zeitzone für jedes Land?
Ja, die USA, Kanada, & Russland haben mehrere Zeitzonen. (Ich denke, jedes andere Land hat nur eine.) Aber es ist besser, zu starten, auf den die meisten wahrscheinlich, wenn ein Land bekannt ist, anstatt nur eine Liste beginnend bei GMT.
Vorzugsweise in C#, aber ich nehme es an nichts und konvertieren C#.
China. Indien. Iran. Brasilien....
Was ist ein "Standard-Zeitzone"??? Die zone, in der mit der Hauptstadt eines Landes?
Und Australien ist mit mindestens drei Zeitzonen, und einige Staaten, aber nicht alle, haben Sommerzeit, und Indiana in den USA, die mindestens zwei Zeitzonen.
Fragen und bitten uns, Sie zu empfehlen, oder ein tool finden, in der Bibliothek oder Lieblings-off-site-resource-off-topic für Stack-Überlauf, da Sie dazu neigen zu locken, rechthaberisch Antworten und spam. Stattdessen beschreiben Sie das problem, und was wurde bisher getan, um es zu lösen.
fun fact: China hat in der Tat nur eine Zeitzone. Verrückt, wenn Sie denken über die Größe des Landes. Aber die Mongolei hat zwei, das sollte sich ausgleichen 😉
Was ist ein "Standard-Zeitzone"??? Die zone, in der mit der Hauptstadt eines Landes?
Und Australien ist mit mindestens drei Zeitzonen, und einige Staaten, aber nicht alle, haben Sommerzeit, und Indiana in den USA, die mindestens zwei Zeitzonen.
Fragen und bitten uns, Sie zu empfehlen, oder ein tool finden, in der Bibliothek oder Lieblings-off-site-resource-off-topic für Stack-Überlauf, da Sie dazu neigen zu locken, rechthaberisch Antworten und spam. Stattdessen beschreiben Sie das problem, und was wurde bisher getan, um es zu lösen.
fun fact: China hat in der Tat nur eine Zeitzone. Verrückt, wenn Sie denken über die Größe des Landes. Aber die Mongolei hat zwei, das sollte sich ausgleichen 😉
InformationsquelleAutor David Thielen | 2013-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Identifizierten und in den Kommentaren die Frage, die Sie nicht gehen, um in der Lage sein zu Holen ein einziges mal in der zone für jedes Land. Es gibt einfach zu viele Fälle von Ländern mit mehreren Zeitzonen.
Was Sie kann tun ist, filtern Sie die Liste der standard - IANA/Olson-Zeitzonen nach unten, um diejenigen, die in einem bestimmten Land.
Einen Weg, dies zu tun in C# ist mit Noda Zeit:
Übergeben Sie einen zweistelligen ISO-3166 Ländercode, wie
"AU"
für Australien. Die Ergebnisse sind:Und wenn aus irgendeinem Grund Sie möchten, dass Windows time zone Bezeichner, die Sie verwenden können, mit der
TimeZoneInfo
Objekt, Noda Zeit können die Karte auch:Wieder, rief mit
"AU"
für Australien gibt:Wenn du dich darüber Wundern, wie zuverlässig diese Daten sind, das Land zu tzid mapping ist Teil von der IANA time zone Datenbank selbst, in der zone.tab - Datei. Die IANA Windows-mapping-Daten kommt aus der Unicode CLDR Ergänzende Daten. Es wird nicht näher auf "offizieller" als das.
FO
Land code? (Faroi Islands
) Finde ich den code in Datei (zone.tab
), aber inC#
ich erhalte keine Ergebnisse für diesen code.Versuchen Sie, den edit habe ich gerade gemacht. Ich hatte nicht berücksichtigt das die IDs in der windows-Zuordnung sind nicht immer die TZDB kanonischen lieben.
InformationsquelleAutor Matt Johnson
Ist vielleicht nicht genau das, was du suchst, aber versuchen Sie dies: http://msdn.microsoft.com/en-us/library/system.timezoneinfo.aspx
Um eine bestimmte Zeitzone:
Sehen die verfügbaren Zonen:
InformationsquelleAutor JuStDaN
Um CountryCode -> TimeZoneInfo-mapping, die ich verwendet Antwort von Matt (2. code-snippet), aber es hat nicht funktioniert für viele Fälle. Gefunden, einfachere und zuverlässigere Lösung (mit gleichen Noda-Zeit): TzdbDateTimeZoneSource.Standard.WindowsMapping.MapZones hat im Grunde alle Daten.
Code-Beispiel:
InformationsquelleAutor Konstantin Babiy
Aktuellen Windows-Versionen enthalten Datei
%WINDIR%\Globalization\Time Zone\timezoneMapping.xml
welche Karten Olson auf Windows-Zeitzone, die Sie Abfragen können es als reguläreXML
. Ich weiß nicht, aber vielleichtC#
bereits eine Klasse, die arbeitet mit Ihr.InformationsquelleAutor Vladimir Zelenov