我正在使用Hibernate 4.3.2。我想将所有日期存储在数据库中的 UTC 中。我可以在 UTC 中存储日期。现在我使用以下方法从数据库中检索日期。
public void getLastActiveTimeAndCheckForIt(int pageId)
{
Criteria criteria = getCurrentSession().createCriteria(MyTable.class, "myTable");
criteria.add(Restrictions.eq("myTable.id", 1));
MyTable row = (MyTable) criteria.uniqueResult();
System.out.println(row.getUpdatedDateTime());
//output : 2014-06-10 03:05:35.0 and actual date in database : 2014-06-10 08:35:35
}
正如我所提到的,我在输出中得到的日期不同,存储在数据库中。我没理由为什么?
我做了一些配置UTC时区的步骤
1。 TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
2。 System.setProperty("user.timezone", "UTC");
3。 I also set my database timezone in UTC.
答案 0 :(得分:0)
这是由于时区偏移被添加到您的日期对象。请尝试以下代码
DateFormat converter = new SimpleDateFormat("dd/MM/yyyy:HH:mm:ss");
converter.setTimeZone(TimeZone.getDefault());
System.out.println(converter.format(row.getUpdatedDateTime()));