Как установить часовой пояс в кварке на UTC - PullRequest
0 голосов
/ 24 января 2020

Я использую Quarkus 1.2.0.

General:

Обозреватель клиента запрашивает данные с сервера. Сервер (приложение Quarkus) получает время в ut c от клиента. (хорошо) Теперь сервер должен сравнить данные из базы данных с временем браузера клиента и должен возвращать все данные из базы данных, что после времени клиента.

У меня есть postgres в качестве базы данных. Каждый раз, когда я сохраняю новые данные или изменяю данные ie в базу данных, я сохраняю данные со временем UT C. Я настаиваю на этом с <property name="hibernate.jdbc.time_zone" value="UTC"/> в постоянстве. xml. Я проверил это, данные сохраняются в UT c времени в базе данных postgres.

Проблема:

Хотя данные сохраняются в UT c в базе данных, когда quarkus извлекает данные из базы данных, он передает данные в местный часовой пояс (GMT +0100). Теперь у меня проблема с тем, что сервер сравнивает данные, преобразованные в (GMT), с клиентским временем (UT C).

Как я могу заставить quarkus использовать часовой пояс UT C?

1 Ответ

1 голос
/ 24 января 2020

Пытались ли вы передать -Duser.timezone=UTC при выполнении вашей банки?

Приложение Quarkus - это просто стандартное приложение Java.

Другой вариант - настроить его в своем приложения непосредственно путем создания компонента CDI, наблюдающего событие запуска:

@Singleton
public class TimezoneSettings {

    public void setTimezone(@Observes StartupEvent startupEvent) {
        System.setProperty("user.timezone", "UTC");
    }
}

Я просто не совсем уверен, что для вашего приложения это будет достаточно рано. Вам придется это попробовать.

...