Вопрос:

Как определить часовой пояс клиента?

java javascript jsp timezone

37716 просмотра

4 ответа

143 Репутация автора

Как получить клиент / запрос часового пояса в JSP?

Автор: user353682 Источник Размещён: 08.06.2010 08:59

Ответы (4)


24 плюса

39316 Репутация автора

Решение

К сожалению, эта информация не передается в заголовках HTTP.

Обычно вам нужен сотрудничающий JavaScript, чтобы получить его для вас.
В Интернете полно примеров, вот один из них http://www.coderanch.com/t/486127/JSP/java/Query-timezone

Автор: Alexander Pogrebnyak Размещён: 08.06.2010 09:05

1 плюс

17019 Репутация автора

вы не можете получить часовой пояс, но вы можете получить текущее время со стороны клиента. На стороне сервера вы можете конвертировать это время в GMT / UTC. UTC показывает часовой пояс.

Автор: Adeel Размещён: 08.06.2010 09:22

1 плюс

166 Репутация автора

Если вам просто нужен местный часовой пояс для отображения локального времени для пользователя, я рекомендую представлять все времена в вашем сервисе в формате UTC и отображать их в браузерах как местное время, используя Moment.js .

Мое общее правило - обрабатывать и хранить время в UTC везде, кроме интерфейса с пользователем, где вы конвертируете в / из местного времени. Преимущество UTC заключается в том, что вам никогда не придется беспокоиться о корректировках перехода на летнее время.

Обратите внимание, что если вы хотите указать возраст чего-либо (например, «опубликовано 3 часа назад»), вам просто нужно сравнить метку времени UTC с текущим временем UTC; нет необходимости переводить в местное время вообще.

Автор: quantoid Размещён: 07.03.2018 07:57

-1 плюса

175 Репутация автора

Лучшее решение для меня - отправить дату / время в виде строки, а затем проанализировать часовой пояс сервера, чтобы получить метку времени. Временные метки всегда в формате UTC (или должны быть), поэтому вам не понадобится часовой пояс клиента.

Например, отправка "10/07/2018 12:45" может быть проанализирована как:

SimpleDateFormat oD = new SimpleDateFormat();
oD.applyPattern("dd/MM/yyyy HH:mm");
oD.setTimeZone(TimeZone.getDefault()); // ;)
Date oDate = oD.parse(request.getParameter("time"));

Очевидно, вы можете установить свой конкретный формат даты / времени.

Автор: jlbofh Размещён: 10.07.2018 05:40
Вопросы из категории :
32x32