在struts中用户提交form表单时候有附带时间,我是这样写的:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
jc.setContectstart(sdf.parse((String) f.get("contectstart")));但是提交后转入的页面却显示成这样:Tue Jan 01 00:00:00 CST 2008如果刷新一下页面就会显示成正常的:2008-01-01 00:00:00.0这是什么原因呢?

解决方案 »

  1.   

    使用sdf.format(f.get("contectstart"))方法,此方法返回的是String,
    sdf.parse返回的是Date对象,调用setContectstart方法时 实际上使用了Date对象的toString()方法,把此 Date 对象转换为以下形式的 String: 
     dow mon dd hh:mm:ss zzz yyyy。详细见API
      

  2.   

    使用sdf.format(f.get("contectstart"))方法,此方法返回的是String,
    sdf.parse返回的是Date对象,调用setContectstart方法时 实际上使用了Date对象的toString()方法,把此 Date 对象转换为以下形式的 String: 
     dow mon dd hh:mm:ss zzz yyyy。详细见API
      

  3.   

    to:
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    jc.setContectstart(sdf.format(sdf.parse(f.get("contectstart"))));
      

  4.   


    jc.setContectstart(sdf.format(sdf.parse(f.get("contectstart")))); 这个contectstart是date类型的。
      

  5.   

    上面说了,Date类型在页面显示时,会调用它的toString()方法,把此 Date 对象转换为以下形式的 String: 
    dow mon dd hh:mm:ss zzz yyyy。详细见API [dow 是一周中的某一天((Sun, Mon, Tue, Wed, Thu, Fri, Sat)); zzz 是时区]
    所以最好还是设置一个String的属性来显示Date。
    要不然你就按照1楼的方法用标签在页面上格式化,道理一样还是将Date手动的格式化为String。
      

  6.   

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new java.util.Date();
    String stime = format.format(date);
      

  7.   

    应该是<bean:write format="yyyy-MM-dd" name="bean_name" property="bean_property"/> 
    我没试过这种用法,都是直接用SimpleDateFormat
      

  8.   

    <fmt:parseDate pattern="yyyy-MM-dd HH:mm:SS" value="${jc.connectStart}" />