2017-10-13 74 views
0

我在此上花費了很多時間,這讓我發瘋。如何在FreeMarker中顯示日曆類型數據

在Java控制,無功mycalendar是日曆Type.Put成模型

model.addAttribute("mycalendar", mycalendar); 

在Freemarker模板:

${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.Calendarjava.util.Date,然後申請一個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));