web-dev-qa-db-fra.com

Comment utiliser le format date comme "aaaa-MM-jj" avec JSTL?

Je veux prendre la date de DB et l'afficher sur jsp:

2014-04-02

au lieu de:

2014-04-02 00: 00: 00.0

Sur jsp, j'ai essayé d'utiliser c: fmt tag pour la date de formatage:

   <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>

En regardant sur la page:

view

Comment le formater au format aaaa-MM-jj?

13
nazar_art

Vous devez d'abord ajouter la ligne ci-dessous en tête de votre fichier jsp

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

Vous pouvez maintenant utiliser <fmt:formatDate> et <fmt:parseDate> pour le formatage de la date.

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

PS: Dans votre code, j'ai vu que vous aviez des erreurs avec la balise jsp. Je pense que ça devrait être

    <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>
24
tiny4penguin

value pour fmt:formatDate est supposé être un objet Date (Java.util.Date). Si la task.startDate est une date sous forme de chaîne, vous devez donc la convertir au préalable.

<fmt:parseDate value="${task.startDate}" pattern="yyyy-MM-dd HH:mm:ss" var="myDate"/>
<fmt:formatDate value="${myDate}" var="startFormat" pattern="yyyy-MM-dd"/>
11
Simon Arsenault