Допустим, я использую Oracle SGBD (RDBMS) и Java 8.
У меня есть хронологические даты, хранящиеся в часовом поясе UTC, но мои приложения отображают только локальные даты, и мои статистические вычисления также применяются только к локальнымdatetimes.
Теперь, скажем, правила DST в Европе меняются, как запланировано .
Какой самый простой способ сохранить работоспособность моего приложения и статистики?
Что я читал до сих пор, так это то, что есть часовые пояса, связанные с правилами DST в Oracle и Java , но они не получают автоматические обновления.Более того, я хотел бы сохранить правила до и после изменений, а не просто обновить правила, так как мне нужна историческая статистика, поэтому мне понадобится часовой пояс «Европа / Париж до перемен» и «Европа / Париж после».изменить часовой пояс, или, лучше сказать, часовой пояс, связанный с историей правил, применяющих себя по мере необходимости.
Кроме того, даже если бы были некоторые удобные способы сделать это в Java, он все равно должен быть исправлен в Oracle, чтобы охватитьвсе варианты использования.
Вот одно из соответствующих исторических изменений правил в Чикаго.Летнее время заканчивается в последнее воскресенье сентября до 1954 года, затем в последнее воскресенье октября с 1955 года (до следующего изменения правила):
Начало перехода на летнее время (Clock Forward) -> Окончание перехода на летнее время (Clock Backward)
1953Диманш 26 Аврил, 02 ч 00 -> Диманш 27 сентября, 02 ч 00
1954 Диманш 25 Аврил, 02 ч 00 -> Диманш 26 сентября, 02 ч 00
1955 Диманш 24 Аврил, 02 ч 00 -> Диманш30 октября, 02 ч 00
1956, dimanche 29 аврил, 02 ч 00 -> Диманш 28 октября, 02 ч 00
PS: Я знаю о Историческая база данных часовых поясов IANA , но, пожалуйста, покажите, как практически использовать его для Oracle SGBD и Java, если вы уже сделали это.
PPS: Любой совет о том, что было бы лучше, чем «UTC», решить эту проблему в будущей базе данных, такжеприветствуется.