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?
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. –