Странная ошибка даты между средой разработки и производства - PullRequest
2 голосов
/ 17 февраля 2020

У меня странная ошибка с датой, которую я не могу решить несколько дней и прошу вашей помощи.

Я разработал в Java / Spring / Vaadin / Hibernate приложение, которое каждый день создает спортивные тренировки Пользователь. Проблема в том, что дата обучения не отображается правильно в браузере. Например, сейчас я создаю новый тренинг:

training.setTrainingdate(LocalDate.now());

На локальном хосте отображается правильно, но в Интернете с Amazon AWS Tomcat показывает неправильную дату (за день до этого). База данных MySql является общей для обоих случаев (localhost и aws) одинаковой на базе данных Amazon AWS RDS Mysql. Мой часовой пояс UT C +1 (Европа / Вена)

2020-02-17

, но в браузере, когда я получаю поезд из aws это шоу

2020-02-16

Что я уже проверял:

- Вкл AWS -RDS- MySQL Сервер:

SELECT now();

2020-02-17 12: 55: 50

и

SELECT * FROM `mydatabase`.training;

2020-02-17

- Elasti c Beanstalk на S SH:

date

Пн 17 февраля 11:55:50 UT C 2020

  • Файлы журнала
  • / var / log / tomcat8 / catalina. out
  • / var / log / tomcat8 / httpd / access_log
  • / var / log / tomcat8 / httpd / error_log

2020-02-17 11: 55: 50.985

Независимо от того, в какое время я пробую разницу, оставайтесь на один день.

Разные устройства и разные браузеры та же проблема.

Есть ли у вас Идея какая может быть? Большое спасибо!

РЕДАКТИРОВАТЬ:

TimeZone.getDefault())

На производственном сервере:

sun.util.calendar.ZoneInfo [id = "Универсальный", смещение = 0, dstSavings = 0, useDaylight = false, переходы = 0, lastRule = null]

На локальном хосте:

sun.util.calendar.ZoneInfo [id = "Европа / Берлин", смещение = 3600000, dstSavings = 3600000, useDaylight = верно, переходы = 143, lastRule = java .util.SimpleTimeZone [ID = Europe / Berlin, смещение = 3600000, dstSavings = 3600000, useDaylight = истина, StartYear = 0, StartMode = 2, StartMonth = 2, startDay = -1, startDayOfWeek = 1, = 3600000 начальный промежуток, startTimeMode = 2, endMode = 2, endMonth = 9, endDay = -1, endDayOfWeek = 1, EndTime = 3600000, endTimeMode = 2]]

1 Ответ

0 голосов
/ 17 февраля 2020

РАЗРЕШЕНО

Решение:

  • Я добавляю версию в maven mysql -connector- java Зависимость:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.48</version>
    </dependency>
    

Я добавляю в spring application.properties:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

и добавляю / изменяю хвост spring.datasource.url в:

?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false

PS Большое спасибо всем, кто пытается помочь! Особенно благодаря @Leif Åstrand и @ PeMa

...