2015-08-19 3 views
6

SO bin ich neu in NodaTime und versuche, es zu verwenden, um Zeitzone Informationen mit DateTimeZone Objekt zu speichern.Wie bekomme ich die Liste der Zeichenfolgen in tzdb, die als Zeitzoneninitialisierer verwendet werden?

Ich kam unten Beispiel in der Benutzerführung usw., die mir ein nettes DateTimeZone-Objekt von tzdb geben, das groß ist.

var london = DateTimeZoneProviders.Tzdb["Europe/London"]; 

Meine Frage ist - wie kann ich eine Liste der Zeitzone Strings bekommen („Europa/London“), die im TZDB verwendet werden. Ich sah mich um, nirgendwo zu finden. Gibt es irgendwo eine Standardliste, auf die ich mich beziehen kann? Wie funktioniert das? Ex. - Was ist die Zeichenfolge, die ich für EST übergeben sollte?

Danke!

Antwort

13

Zum programmgesteuerten Abrufen der Zeitzonen-IDs verwenden Sie die Ids-Eigenschaft in IDateTimeZoneProvider. Um zum Beispiel alle Zonen finden:

var provider = DateTimeZoneProviders.Tzdb; 
foreach (var id in provider.Ids) 
{ 
    var zone = provider[id]; 
    // Use the zone 
} 

für Eastern Time, möchten Sie wahrscheinlich America/New_York.

Im Allgemeinen sind diese Kennungen diejenigen von IANA - und sie sind diejenigen, die in den meisten Nicht-Windows-Systemen verwendet werden.

+0

Und die Liste selbst kann von https://www.iana.org/time-zones heruntergeladen werden? –

+0

@EndyTjahjono: Das hat die rohen Zeitzonendaten. Ich kenne keine sehr einfache Möglichkeit, alle IDs von dort ohne viele andere Daten zu bekommen. –

Verwandte Themen