如何在 JSTL 中使用日期格式为“yyyy-MM-dd”?

16

我想从数据库中获取日期并在JSP上显示:

2014-04-02

而不是:

2014-04-02 00:00:00.0

在JSP上,我尝试使用c:fmt标签对日期进行格式化:

   <div class="form-group">
      <span><fmt:message key="task.start"/></span>
      <input class="form-control" id="firstDate" placeholder="<fmt:message key="task.start"/>" 
           name="start_date-${task.taskId}"
         <fmt:formatDate value="${task.startDate}" var="startFormat" type="date" pattern="yyyy-MM-dd"/>
        value="${startFormat}"/>
   </div>

在页面上查看:

view

如何将其格式化为yyyy-MM-dd格式?


如何在JSTL中格式化日期 - Adriano
相关文档请参考:http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fmt/tld-summary.html 和 http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html。 - Adriano
2个回答

28

首先您需要将以下行添加到jsp文件的头部

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

现在您可以使用<fmt:formatDate><fmt:parseDate>来格式化日期。

<fmt:formatDate value="${now}" pattern="yy-MMM-dd"/>

提示:在您的代码中,我看到您在jsp标记上犯了一些错误。 我认为应该是

    <div class="form-group">
      <span><fmt:message key="task.start"/></span>
      <input class="form-control" id="firstDate" placeholder="<fmt:message key='task.start'/>" 
           name="start_date-${task.taskId}" value="<fmt:formatDate value='${task.startDate}' var='startFormat' type='date' pattern='yyyy-MM-dd'/>"
   </div>

13
< p > < code > fmt:formatDate 的 < code > value 应该是一个日期对象(< code > java.util.Date )。如果 < code > task.startDate 是一个字符串格式的日期,则需要事先将其转换。
<fmt:parseDate value="${task.startDate}" pattern="yyyy-MM-dd HH:mm:ss" var="myDate"/>
<fmt:formatDate value="${myDate}" var="startFormat" pattern="yyyy-MM-dd"/>

它是java.util.Date - catch23

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接