Service-A: с Java 8, Spring boot 2.7.x
- Настройка ZoneddateTime ("Америка/Нью_Йорк") в объекте Java и добавление
его в очередь RabbitMQ.
- Получает ZoneddateTime из очереди и сохраняет его в базе данных MySql.
- ZoneddateTime сохраняется в EST /EDT, как и ожидалось.
- Результат запроса (SELECT @@system_time_zone;) — это EDT.
- столбец типа данных в хранилище MySQL для ZoneddateTime — datetime
После обновления Service-B (службы, которая сохраняет дату и время в БД) до Java 17 и загрузки Spring 3.2.9. ZoneddateTime получает постоянный формат UTC (EDT + 4 часа).
Отладка:
- Я пытался преобразовать время в EDT/EST, а затем сохраняться в БД. Но по-прежнему сохраняется только в формате UTC.
Код: Выделить всё
final ZonedDateTime inboundTimeEST = inboundTime.withZoneSameInstant("America/New_York");
obj.setRequestTime(inboundTimeEST);
logsRepository.save(obj);
- Я понизил версию весенней загрузки до 2.7.9 с Java 17. ZoneddateTime сохраняется в формате EST/EDT как ожидал. Я думаю, проблема не связана с обновлением Java.
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-db-alway