使用 JSTL 将长时间戳格式化为日期

2022-09-02 19:13:54

我正在从数据库中提取一个很长的时间戳,但希望仅使用标签将其呈现为日期,JSP中没有嵌入式java。

我创建了自己的标签来执行此操作,因为我无法让parseDate和formatDate标签工作,但这并不是说它们不起作用。

有什么建议吗?

谢谢。


答案 1

通过使用 和 标记在 JSP 中创建日期对象,将新创建的日期对象的时间设置为时间戳的时间,可以避免对 Servlet 进行任何更改。例如:jsp:useBeanjsp:setProperty

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<jsp:useBean id="dateValue" class="java.util.Date"/>
<jsp:setProperty name="dateValue" property="time" value="${timestampValue}"/>
<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/>

答案 2

parseDate 和 formatDate 标记有效,但它们适用于 Date 对象。您可以调用新的 java.util.Date(longvalue) 来获取日期对象,然后将其传递给标准标记。

jsp 以外的其他位置创建日期对象。

long longvalue = ...;//from database.
java.util.Date dateValue = new java.util.Date(longvalue);
request.setAttribute("dateValue", dateValue);

把它放在请求上,然后你可以像这样在你的标签中访问它。

<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/>