Почему LocalDateTime записывает дату в БД не верно, со сдвигом 11 часов назад?

Приветствую уважаемые форумчане.

Не могу понять что происходит с LocalDateTime.

1. Текущее время 2020-10-02 05:02:00

Записываю в БД текущую дату.
2020-10-01 18:02:00
LocalDateTime.now()

На следующей строке проверяю текущую дату
2020-10-02T05:02:00
System.out.println(LocalDateTime.now());

Ниже на строке проверяю текущую часовую зону сервера
2020-10-02T05:02:00+11:00[Asia/Sakhalin]
System.out.println(ZonedDateTime.now());

Потом проверяю текущее время сервера mysql

mysql> SELECT CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 05:02:00  |
+-----------+


Далее проверяю часовую зону MySql
SELECT EXTRACT(HOUR FROM (TIMEDIFF(NOW(), UTC_TIMESTAMP))) AS `timezone`;
+----------+
| timezone |
+----------+
|       11 |
+----------+


Везде все даты и часовые пояса в порядке, но когда записываю данные в БД, то дата сдвигается на 11 часов назад, то есть, записываю текущую даты 2020-10-02 05:02:00 а попадает в БД 2020-10-01 18:02:00

Что происходит и почему так, непонятно.

Кто может объяснить, что происходит?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
записывает-то оно верно
а вот твои знания пока маловаты

по-быстрому в энтерпрайз зарплаты не вскочишь, вникай

https://habr.com/ru/post/274905/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы