2012-07-31 64 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