JSTL fmt 格式化時間
使用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
JSTL fmt 格式化時間