日期值未正确显示

时间:2012-07-31 14:10:35

标签: java spring jsp

大家好,我遇到了自定义属性编辑器的问题。以下是我的代码 * 片段: *

  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 个答案:

答案 0 :(得分:1)

是的,因为你不能使用toString格式化日期或日历。 使用SimpleDateFormat类和格式操作