В моем проекте весенней загрузки (2.1.4) у меня есть база данных mysql (5.7.21 - версия сервера) и следующие свойства приложения:
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC
и
hibernate.jdbc.time-zone=UTC
.
Теперь, когда я сохраняю записи прав доступа с помощью @CreationTimestamp
с использованием java (либо с помощью @PostConstruct
, либо с помощью некоторой логики контроллера / службы), даты корректно преобразуются в UTC
часовой пояс и сохраняются в базе данных, а также извлекаютсяв формате UTC
(как я хочу, чтобы они были).Однако, когда я добавляю (другие) записи через файл data.sql
.Соответствующие поля меток времени также имеют часовой пояс UTC, но на этот раз время не конвертируется должным образом в UTC (это просто мое текущее время с часовым поясом, установленным в UTC).
Как правильно настроить его для обеих ситуаций, чтобы всегда преобразовывать местное время в UTC, сохранять его и всегда извлекать его как UTC из базы данных?
Следует изменитьГлобальный часовой пояс mysql решает проблему?
Пример:
Я нахожусь в часовом поясе: GMT + 2 Для записей, сохраненных в 11:11:53, установлено следующее время:
1.) Java создал записи: 09: 11: 53
2.) Data.sql создал записи: 11: 11: 53
Оба находятся в часовом поясе UTC (я вижуэто, когда выборка в клиенте), но только первое правильно.