Смещение DST не работает на моем сервере разработки - PullRequest
0 голосов
/ 11 сентября 2018

Мой рабочий сервер работает под управлением java8, а также мой комплект разработки.Я запускаю это и ...

public static void main(String[] args) {
    TimeZone timeZone = TimeZone.getTimeZone("America/Santiago");
    Calendar st = Calendar.getInstance(timeZone);
    Calendar end = Calendar.getInstance(timeZone);
    st.set(2008, Calendar.JANUARY, 1, 0, 0, 0);
    end.set(2028, Calendar.DECEMBER, 31, 23, 59, 59);


    String actualOffset=null;

    ZonedDateTime timeActual = ZonedDateTime.ofInstant(st.toInstant(), timeZone.toZoneId());
    ZonedDateTime lastTime = ZonedDateTime.ofInstant(end.toInstant(), timeZone.toZoneId());

    do {
        if (!timeActual.getOffset().getId().equals(actualOffset)) {
            actualOffset=timeActual.getOffset().getId();
            System.out.println("Offset changed. " + timeActual.get(ChronoField.DAY_OF_MONTH) + "/" + timeActual.get(ChronoField.MONTH_OF_YEAR) + "/" + timeActual.get(ChronoField.YEAR) + ". New value " + actualOffset);
        }
        timeActual = timeActual.plusDays(1);
    } while (timeActual.isBefore(lastTime));
}

Я попал в разработку:

Offset changed. 1/1/2008. New value -03:00
Offset changed. 30/3/2008. New value -04:00
Offset changed. 12/10/2008. New value -03:00
...

, но если я запущу в производство, я получу только одну строчку:

Offset changed. 1/1/2008. New value -03:00

Что случилось?Мой рабочий сервер находится под докером, это может быть что?

1 Ответ

0 голосов
/ 11 сентября 2018

Вероятно, это связано с тем, что (по крайней мере) одна из ваших установок устарела для часовых поясов.

Из Википедии мы видим, что политики несколько раз меняли правила в последние годы, что объясняет, что некоторые установки могут иметь устаревшие данные о часовых поясах. Установка Java не обновляется автоматически, когда политики передумают.

Решение состоит в том, чтобы использовать средство обновления часовых поясов для обновления базы данных часовых поясов вашей установки Java. Обновление до новейшей версии Java, которую вы можете получить, может быть другим вариантом, вы можете попробовать его, если хотите.

Ссылки

...