2012-11-09 9 views
5

Ich habe gerade angefangen mit NodaTime zu arbeiten. In meiner App erstellt der Benutzer ein Ereignis und wählt eine Zeitzone aus. Unabhängig davon, ob ich die BCL (Windows) -Zeitzonenliste oder die TZDB (Olson) -Liste verwende (und sie nicht mische!), Muss ich die ID der Zeitzone in meiner Datenbank beibehalten, damit ich später die Zeitzone neu erstellen kann - Zeit vergessen.Ist es sicher, Zeitzonen-IDs in einer Datenbank zu speichern oder können sie sich ändern?

Vorausgesetzt, dass Zeitzonen-IDs etwas willkürlich erscheinen und kein ISO-Standard sind, kann ich darauf vertrauen, dass ich diese Id in Zukunft immer wieder finde, wenn ich GetZoneOrNull anrufe?

Ich gehe davon aus, dass die GetZoneOrNull-Methode die Verteidigung dagegen ist; Das heißt, wenn eine ID übergeben wird, die in ihrer eigenen Ids-Sammlung nicht existiert. Meine Frage ist: Wenn eine ID aus der Ids-Sammlung abgerufen wurde, kann ich darauf vertrauen, dass GetZoneOrNull in Zukunft niemals null zurückgibt?

Aber wenn eine ID kann aus der Geschichte verschwinden, was ist die beste Strategie, um damit umzugehen?

Antwort

6

Offensichtlich, wenn Sie zwischen Windows-Zeitzonen und TZDB wechseln, dann werden die Zeitzonen-IDs unterschiedlich sein. Olson Timezone Ids sollen stabil sein und sollten sich nicht ändern. Obwohl ich das sage, gab es Veränderungen in der Vergangenheit, aber die alten IDs existieren immer noch und sind Aliasnamen für die neuen. Alle "Region/Stadt" -IDs sind der neue Stil und dieses Schema wurde so gewählt, dass sie sich nie wieder ändern sollten. Alte IDs wurden manchmal auf der Basis von legalen Namen der Zeitzone benannt, die sich ändern können.

Wir speichern die Olson Id der Zeitzone in einer Tabelle in meinem aktuellen Projekt.

Ich kann nicht für windows timezone ids sprechen.

+0

Ich werde entweder TZDB oder Windows wählen, in Richtung Olson, um ehrlich zu sein, nur für den Fall, dass ich mit der Außenwelt sprechen muss. Ich mag die Tatsache, dass sie die alten IDs zu den neuen machen, was das Problem verschwinden lässt, denke ich. Ich bin mir nicht sicher, ob Windows die gleiche Konvention übernehmen wird, aber Sie möchten es so sehen. Wegen dieser Zweifel werde ich Olson benutzen. Vielen Dank. –

Verwandte Themen