Java 持久化sj:datepicker作为时间戳

Java 持久化sj:datepicker作为时间戳,java,sql,persistence,struts2-jquery,Java,Sql,Persistence,Struts2 Jquery,我有一个输入字段: <sj:datepicker readonly="true" name="exam.endDate" required="true" timepicker="true" timepickerAmPm="true" /> 其中exam.endDate是一个具有适当getter和setter的java.sql.Timestamp对象。检查是存储在表中的实体,endDate列的类型为TIMESTAMP。当我持久化一个检查实体并在以后检索它时,我的所有值都是日期,时

我有一个输入字段:

<sj:datepicker readonly="true" name="exam.endDate" required="true" timepicker="true" timepickerAmPm="true" />

其中exam.endDate是一个具有适当getter和setter的java.sql.Timestamp对象。检查是存储在表中的实体,endDate列的类型为TIMESTAMP。当我持久化一个检查实体并在以后检索它时,我的所有值都是日期,时间显示为00:00。如何存储时间组件

以下是我显示日期的方式:

<s:date name="exam.endDate" format="dd/MM HH:mm" />

我得到的是“24/06 00:00”


我知道参数拦截器工作不正常,因为当我输入操作并打印出00:00时,无论我输入什么,都会打印出
DateFormat.getDateTimeInstance().format(exam.endDate)

结果表明struts2参数拦截器不处理时间戳,所以我需要编写自己的

public class MyTimeStampConverter extends StrutsTypeConverter {
    private static final SimpleDateFormat sdf = new SimpleDateFormat("<!--Desired Format here-->");

    @Override
    public Object convertFromString(Map context, String[] values, Class toClass) throws TypeConversionException {
        try{
               if (values == null || values.length == 0) {
                    return null;
                }
               return new java.sql.Timestamp(sdf.parse(values[0]).getTime());
        }catch(Exception e){        
            throw new TypeConversionException(e);
        }
    }

    @Override
    public String convertToString(Map context, Object object)  throws TypeConversionException  {
        try{
            if(object instanceof Timestamp){
                return sdf.format(new Date(((Timestamp)object).getTime()));
            }
            return "";
        }catch(Exception e){
            throw new TypeConversionException(e);
        }
    }

}
公共类MyTimeStampConverter扩展了StrutsTypeConverter{
私有静态最终SimpleDataFormat sdf=新SimpleDataFormat(“”);
@凌驾
公共对象convertFromString(映射上下文,字符串[]值,类到类)抛出TypeConversionException{
试一试{
if(value==null | | values.length==0){
返回null;
}
返回新的java.sql.Timestamp(sdf.parse(值[0]).getTime();
}捕获(例外e){
抛出新的TypeConversionException(e);
}
}
@凌驾
公共字符串convertToString(映射上下文、对象对象)抛出TypeConversionException{
试一试{
if(对象实例of Timestamp){
返回sdf.format(新日期(((时间戳)对象).getTime());
}
返回“”;
}捕获(例外e){
抛出新的TypeConversionException(e);
}
}
}