Я работаю в приложении, которое использует Java 8, Maven и Spring. С 2019 года в Бразилии было отменено летнее время.
В основном я изменяю все даты в системе, чтобы сохранить в ut c и отображаться в часовом поясе того, кто использует приложение. Большинство пользователей из Бразилии
. Чтобы исправить проблему с часовым поясом, я обновил JRE и JDK до последних версий java 8, и поэтому все даты, указывающие на летнее время, начали возвращаться в обычное время. Благодаря этому мне удалось преобразовать даты, и я делал это в течение двух недель
Проблема в том, что сегодня, около обеда, все преобразования, которые я делал, внезапно вернулись, чтобы указать переход на летнее время. , даже ничего не обновляя
Пример:
calculatedList.forEach(dto -> {
LocalDateTime date = dto.getResultDate();
dto.setResultDate(date.atZone(ZoneId.of("UTC")).withZoneSameInstant(ZoneId.of("America/Sao_Paulo")).toLocalDateTime());
});
когда я писал этот код, я убедился, что преобразование заняло дату в ut c и довело ее до -3 , Теперь этот же метод конвертируется в -2
Я создавал подобные коды уже 2 недели, и до сих пор все работало так, как должно. Это очень расплывчатый вопрос, но я просто не могу представить, что я мог сделать, чтобы сделать часовой пояс go неправильным. Может ли кто-нибудь помочь мне понять, что случилось?