web-dev-qa-db-ja.com

JSTLで日付を「yyyy-MM-dd」としてフォーマットする方法は?

DBから日付を取得して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形式にフォーマットする方法は?

13
nazar_art

最初に、以下の行を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>
24
tiny4penguin

fmt:formatDatevalueは、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"/>
11
Simon Arsenault