2012-07-31 94 views
0

您好所有我被困在自定義屬性editors.Following問題是我的代碼 * 片段: *日期值不能正常顯示

import java.beans.PropertyEditorSupport; 
    import java.text.DateFormat; 
    import java.text.SimpleDateFormat; 
    import java.util.Calendar; 
    import java.util.Date; 
    import org.joda.time.format.DateTimeFormatter; 
    import org.joda.time.format.ISODateTimeFormat; 
    public class CustomCalendarEditor extends PropertyEditorSupport { 

     private Date date; 
     @Override 
     public String getAsText() { 
      Calendar value = (Calendar) getValue(); 
      Date dateTime = value.getTime(); 
      System.out.println("in editor--->"+dateTime); 
      return dateTime.toString(); 
     } 
     @Override 
     public void setAsText(String text) throws IllegalArgumentException { 
      try { 
       DateFormat formatter ; 
       Date date ; 
       formatter = new SimpleDateFormat("dd/MM/yyyy"); 
       date = (Date)formatter.parse(text); 
       Calendar cal=Calendar.getInstance(); 
       cal.setTime(date); 
       System.out.println("Today is " +date); 
       setValue(cal); 
      }catch(Exception e){ 
       e.printStackTrace(); 
     }} 
    } 

從上面getAstext方法,我Calendar對象轉換爲日期以彈簧形式顯示如下:

form:input path="dateTime" value=" ${catalogingInfo.dateTime}" 

getAstext被調用,但日期不以正確的形式顯示它顯示像:

java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2011,MONTH=5,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=6,DAY_OF_YEAR=1,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=19800000,DST_OFFSET=0] 

我不知道我在哪裏犯了一個錯誤。對不起,我的英語不好。

回答

1

對,因爲你不能使用toString來格式化日期或日曆。 使用SimpleDateFormat類和格式化操作

+0

我明白,但至少它應該顯示像星期四09月00:00:00 IST 2011 – 2012-07-31 14:33:39