以下代码打印出“vmtDataOrig.creationdate = 2012-11-03”
VmtData vmtDataOrig = VmtDataDao.getInstance().loadVmt(1);
System.out.println("vmtDataOrig.creationdate=" + vmtDataOrig.getCreationDate().toString());
以下是VmtData类中creationDate字段的定义:
private Date creationDate = null;
这是creationDate字段到数据库表列的hibernate映射:
<property name="creationDate" column="CREATIONDATE" type="date"/>
MySQL数据库表中的CREATIONDATE列的类型为“date”,对于检索到的记录,它的值为“2012-11-03”。
java.util.Date.toString()方法的Javadoc说它应该以“dow mon dd hh:mm:ss zzz yyyy”的形式打印Date对象。任何人都知道它为什么以“yyyy-MM-dd”的形式打印出来?
答案 0 :(得分:3)
即使该字段属于java.util.Date
类型,Hibernate仍然可以使用java.sql.Date
填充,其子类java.util.Date
并覆盖{{1}例如:
toString()
虽然很容易检查:
public class Test {
public static void main(String[] args) throws Exception {
java.util.Date date = new java.sql.Date(0);
System.out.println(date); // 1970-01-01
}
}
答案 1 :(得分:0)
你的hibernate类型是日期,因此使用了java.sql.Date(它是java.util.date的子类)。如果将hibernate类型更改为java.sql.Timestamp,它将使用其toString()实现。