使用fmt函数需在jsp中引入
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatDate value="${item.expDate}" pattern="yyyy-MM-dd"/>
报java.lang.IllegalArgumentException: Cannot convert 20131125 of type class java.lang.String to class java.util.Date
异常 因为${item.expDate}取出来是String类型,无法转换为Date类型
如下将能正常输出
<fmt:formatDate value="<%=new Date() %>" pattern="yyyy-MM-dd"/>
解决办法是,可先将String解析为Date 然后再格式化Date 。
<fmt:parseDate value="${item.expDate}" var="yearMonth" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${yearMonth}" pattern="yyyy-MM" /><!-- 这里的value只能是date类型-->
<c:>标签介绍:
后台:
request.setAttribute("today",new Date());
前台:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<fmt:formatDate value="${today}" /> //不写type属性,和type="date"等价
<fmt:formatDate value="${today}" type="time" /> //type的默认值为date
<fmt:formatDate value="${today}" type="both" />
<fmt:formatDate value="${today}" dateStyle="short" />
<fmt:formatDate value="${today}" dateStyle="medium" /> //dateStyle="medium"为缺省值
<fmt:formatDate value="${today}" dateStyle="long" />
<fmt:formatDate value="${today}" dateStyle="full" />
<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" />
<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" var="d" />
${d}
结果: 2010-9-20
13:03:35
2010-9-20 13:05:32
10-9-20
2010-9-20
2010年9月20日
2010年9月20日 星期三
2010/09/20 13:10:25
2010/09/20 13:10:56