当您为命名的SQL参数指定日期时,Hibernate会自动将其转换为GMT时间.如何让它在所有日期使用当前服务器时区?
让我们说你有一个问题:
Query q = session.createQuery("from Table where date_field < :now"); q.setDate("now", new java.util.Date());
"now"将设置为GMT时间,而"new Date()"将获取当前服务器时间.
谢谢.
事实证明,Hibernate不会自动将日期转换为GMT,如果您使用它会缩短时间query.setDate()
,所以如果您通过"2009-01-16 12:13:14"它将成为"2009-01-16 00:00" :00" .
要花时间考虑,你需要使用query.setTimestamp("date", dateObj)
.