1. 程式人生 > >JSTL fmt 格式化時間

JSTL fmt 格式化時間

except for 默認值 pat time tag 缺省 正常 blog

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