代码之家  ›  专栏  ›  技术社区  ›  Tim Reddy

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

  •  3
  • Tim Reddy  · 技术社区  · 17 年前

    在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函数的时区属性,但我不确定如何获取客户端的时区。有人能提出建议吗?

    谢谢!

    2 回复  |  直到 9 年前
        1
  •  2
  •   victor hugo    17 年前

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

    所以你有两个选择:

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

    • 使用Ajax,通过javascript和xmlhttpRequest对象,可以将“new date().getTimeZoneOffset()”值推送到服务器,并将其存储在会话变量中。

    如果你只想显示时区,可能选项太多了

        2
  •  1
  •   David    17 年前

    在不向用户询问某些信息的情况下,我能看到的唯一方法是使用JavaScript格式化日期。不是最漂亮的解决方案,我可以补充一句

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

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