Как использовать формат даты как "гггг-ММ-ДД" с JSTL? [дубликат]

этот вопрос уже есть ответ здесь:

Я хочу взять дату из БД и отобразить на 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

Как отформатировать его в гггг-ММ-ДД?

2 ответов


сначала вам нужно добавить строку ниже в заголовок вашего файла jsp

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

теперь вы можете использовать <fmt:formatDate> и <fmt:parseDate> для форматирования даты.

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

PS: в вашем коде я видел, что у вас были некоторые ошибки с тегом 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>

на value на fmt:formatDate предполагается, что это объект Date (java.util.Date). Если 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"/>