2017-10-13 4 views
0

私はこれに多くの時間を費やしていました。 Javaのコントローラ、VaRのmycalendarでFreeMarkerでカレンダータイプのデータを表示するには

カレンダーFreemarkerのテンプレートで

model.addAttribute("mycalendar", mycalendar); 

モデルにそれをType.Putされています。このような

${pp} 

エラー:

java.util.GregorianCalendar[time=1507864967342,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2017,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=13,DAY_OF_YEAR=286,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=22,SECOND=47,MILLISECOND=342,ZONE_OFFSET=28800000,DST_OFFSET=0] 

どのようにすることができますこのカレンダータイプを「yyyy-MM-dd HH:mm:ss」のように正しく表示してください。

答えて

1

のためにあなたがjava.util.Dateにあなたのjava.util.Calendarを変換する必要があり、それをフォーマットする組み込みFreeMarkerの申請することができるコードの下に、これを使用してください:それは作品

${pp.time?string["yyyy-MM-dd HH:mm:ss"]} 
+0

を、感謝君は! –

+0

これ以降の読者の方は、 '$ {pp.time?datetime}'と書くこともできます。この場合、 'datetime_format'設定の書式に従います。 ( '?datetime'は裸の' java.util.Date'からここに必要です。これは、日付のみ、時刻のみ、または日時の値であることを確実に伝えることは不可能です)。 – ddekany

-1

それは役に立ちます

 String date_s = "2011-01-18 00:00:00.0"; 

     // *** note that it's "yyyy-MM-dd hh:mm:ss" not "yyyy-mm-dd hh:mm:ss" 
     SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     Date date = dt.parse(date_s); 

     // *** same for the format String below 
     SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd"); 
     System.out.println(dt1.format(date)); 
関連する問題