2010-04-12 100 views
10

我有一个遍历我们网站上所有新闻的循环。其中一个字段是日期${newsitem.value['Date']},单位为毫秒。我想在网页上以月/日/年格式显示此日期。我认为JSTL格式标签<fmt:formatDate>会有帮助,但我没有成功。你知道该怎么做吗?如何在JSTL中格式化日期

<cms:contentaccess var="newsitem" /> 
<h2><c:out value="${newsitem.value['Title']}" /></h2> 
// display date here   
<c:out value="${newsitem.value['Text']}" escapeXml="false" /> 

回答

36

是在JSTL formatDate标签应该做的工作结合改变时间戳值转换成日期对象(这是需要工作在您的评论中提到的例外左右)。

确保你已经正确定义的fmt前缀在JSP声明

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 

渲染输出,时间戳转换到一个日期值。我使用yyyy-MM-dd作为format patterndateFormat标签也支持other formatting options

<cms:contentaccess var="newsitem" /> 
<jsp:useBean id="newsDate" class="java.util.Date" /> 
<jsp:setProperty name="newsDate" property="time" value="${newsitem.value['Date']}" /> 
<h2><c:out value="${newsitem.value['Title']}" /></h2> 
<fmt:formatDate pattern="yyyy-MM-dd" value="${newsDate}" /> 
<c:out value="${newsitem.value['Text']}" escapeXml="false" /> 
+0

我已经试过这更早,但它抛出这个错误: “无法转换类型的类org.opencms.jsp.util.CmsJspContentAccessValueWrapper的1270738800000类java.util.Date” – 2010-04-12 09:01:17

+1

的标签库URI表示10 JSTL的一个旧版本。请升级。 – BalusC 2010-04-12 11:51:48

+0

感谢您发现旧的URI,我已经按照您的建议升级了它 – BenM 2010-04-12 13:46:54