У меня есть данные в БД в UTC
часовом поясе и некоторая логика на клиенте, которая зависит от конкретного времени.установить часовой пояс за запрос весной
Существовало решение вернуть данные с сервера в часовом поясе пользователя, так что есть поток:
- сторона клиента определяет часовой пояс пользователя с помощью Javascript
- отправляет его в пользовательском заголовке (т.е.
"X-TIMEZONE"
) - сервер перехватывает запрос (в
Filter
) и устанавливает текущую временную зону для него (за заказ) - сервера обрабатывает конверсии и возвращают данные для пользователей в его часовом поясе
Таким образом, проблема в заданном часовом поясе с запросом, возможно ли это?
Я узнал, что Timezone.setDefault()
устанавливает часовой пояс для применения в целом.
Спасибо.
Храните часовой пояс в Spring Spring и используйте его при необходимости (при работе с датами и временем). Невозможно установить часовую зону с запросом в JVM, поскольку сама JVM ничего не знает о областях. – Jesper
В Java8 есть класс ZonedDateTime.Вы можете передать зону dao и создать в ней время с зоной. – Damian0o
На самом деле 'TimeZone.setDefault' влияет на все потоки * всех приложений *, запущенных в этой JVM. Сделайте это только в крайнем случае. Вместо этого передайте объект, представляющий желаемый часовой пояс, и используйте его в необязательных аргументах часового пояса. –