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

时间:2020-03-05 18:56:47  来源:igfitidea点击:

我正在从数据库中提取一个很长的时间戳,但是希望仅使用标签将其显示为Date,而JSP中没有嵌入式Java。
我创建了自己的标签来执行此操作,因为无法使parseDate和formatDate标签起作用,但这并不是说它们不起作用。
有什么建议吗?

谢谢。

解决方案

回答

parseDate和formatDate标记可以使用,但它们可以与Date对象一起使用。
我们可以调用new 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"/>

回答

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

<%@ 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"/>