是否可以使用JSTL在客户端的时区显示日期?

时间:2009-05-14 17:40:04

标签: java javascript date 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"/>

由于现在正在服务器上创建日期,因此它可能不代表客户的日期。我相信我可以设置formatDate函数的timeZone属性,但我不确定如何获取客户端的时区。有人可以提出建议吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

服务器拥有的所有信息都在HTTP请求中,不包含任何有关时间或时区的信息。

所以你有两个选择:

  • 使用cookie可以存储时区,然后在服务器端检索它。这里的问题是你必须等待第二个请求使用时区值。

  • 使用AJAX,使用javascript和XMLHttpRequest对象,您可以将'new Date()。getTimezoneOffset()'值推送到服务器,将其存储在会话var中

如果您只想显示时区,可能任何选项都太多了

答案 1 :(得分:1)

我可以在不向用户询问某些信息的情况下看到这样做的唯一方法是使用javascript格式化日期。不完全是最漂亮的解决方案,我可以添加

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

或者,您可以考虑在格式化日期中显示时区。这样,用户至少知道您正在使用的时区。