Właśnie zacząłem pracować z NodaTime. W mojej aplikacji użytkownik tworzy wydarzenie i wybiera strefę czasową. Niezależnie od tego, czy używam listy stref czasowych BCL (Windows), czy listy TZDB (Olson) (i nie mieszam ich!), Muszę zachować identyfikator strefy czasowej w mojej bazie danych, aby móc później odtworzyć strefę czasową -czasowy czas.Czy można przechowywać identyfikatory stref czasowych w bazie danych lub czy można je zmienić?
Biorąc pod uwagę, że identyfikatory strefy czasowej wydają się być nieco arbitralne i nie są standardem ISO, czy mogę liczyć na to, że zawsze znajdę ten identyfikator w przyszłości, gdy zadzwonię do GetZoneOrNull?
Zakładam, że metoda GetZoneOrNull stanowi obronę przed tym zdarzeniem; to znaczy, gdy zostanie przekazany identyfikator, który nie istnieje w kolekcji własnych identyfikatorów. Moje pytanie brzmi: jeśli identyfikator został pobrany z kolekcji identyfikatorów, czy mogę ufać, że GetZoneOrNull nigdy nie zwróci wartości null?
Ale jeśli Id może zniknąć z historii, jaka jest najlepsza strategia radzenia sobie z tym?
Będę wybierał TZDB lub Windows, pochylając się w kierunku Olsona, aby być uczciwym, na wypadek, gdyby potrzebowałem rozmawiać ze światem zewnętrznym. Podoba mi się fakt, że pseudonimy starych identyfikatorów do nowych, co sprawia, że problem znika. Nie jestem pewien, czy Windows przyjmie tę samą konwencję, ale chciałby tak myśleć. Z powodu tej wątpliwości zamierzam użyć Olsona. Dzięki. –