JSTL fmt 格式化时间

Posted David_Deng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 格式化时间的主要内容,如果未能解决你的问题,请参考以下文章

jstl-日期格式化-jsp页面需引入fmt标签

重温JSP学习笔记--与日期数字格式化有关的jstl标签库

JSTL # JSTL的简单使用:核心标签 c格式化标签 fmt 函数

JSTL--格式化日期--drp217

JSP页面日期按格式显示:jstl-fmt使用

jstl标签的fmt:formatDate格式化日期 String to Date