Можно ли использовать JSTL для отображения даты в часовом поясе клиента?

В Javascript у меня есть эта функция для отображения текущей даты в заголовке нашей страницы:

<SCRIPT language="Javascript">
    var today = new Date();
    document.write(today.toLocaleDateString());
</SCRIPT>

Я хотел бы сделать это через JSTL, но не уверен, что это возможно. Пока у меня есть этот фрагмент кода:

<jsp:useBean id="date" class="java.util.Date" />
<fmt:formatDate value="${date}" type="date" pattern="EEEE, MMMM dd, yyyy"/>

Поскольку дата сейчас создается на сервере, она может не соответствовать дате клиента. Я считаю, что могу установить атрибут timeZone функции formatDate, но я не знаю, как получить часовой пояс клиента. Может кто-нибудь предложить предложение?

Спасибо!


person Tim Reddy    schedule 14.05.2009    source источник


Ответы (2)


Вся информация, которую имеет сервер, находится в HTTP-запросе, который не содержит никакой информации о времени или часовом поясе.

Итак, у вас есть два варианта:

  • Используя файл cookie, вы можете сохранить часовой пояс, а затем получить его на стороне сервера. Проблема здесь в том, что вам нужно дождаться второго запроса, чтобы использовать значение часового пояса.

  • Используя AJAX, с javascript и объектом XMLHttpRequest, вы можете отправить значение «new Date().getTimezoneOffset()» на сервер, сохранить его в сеансе var

Возможно, любой из вариантов слишком много, если вы просто хотите отобразить часовой пояс

person victor hugo    schedule 14.05.2009
comment
Это, безусловно, творческая идея, но более сложная, чем СЦЕНАРИЙ, который у меня сейчас есть... - person Tim Reddy; 14.05.2009
comment
Да, я публикую этот ответ только в том случае, если знание часового пояса имеет решающее значение. Вся информация, которую имеет сервер, находится в HTTP-запросе, который не содержит никакой информации о времени или часовом поясе, поэтому я думаю, что это невозможно узнать, если не используется AJAX или файл cookie. - person victor hugo; 14.05.2009

Единственный способ сделать это, не запрашивая у пользователя какую-либо информацию, - отформатировать дату с помощью javascript. Не совсем красивое решение, я мог бы добавить

<script ...>document.write(<javascript to format the date>)</script>

В качестве альтернативы вы можете рассмотреть возможность отображения часового пояса в отформатированной дате. Таким образом, пользователь, по крайней мере, знает, какой часовой пояс вы используете.

person David    schedule 14.05.2009