在使用HIbernate从DB检索日期时得到错误的datetime字段值



我使用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.

这是由于时区偏移被添加到您的日期对象。试试下面的代码

DateFormat converter = new SimpleDateFormat("dd/MM/yyyy:HH:mm:ss");
converter.setTimeZone(TimeZone.getDefault());
System.out.println(converter.format(row.getUpdatedDateTime()));

相关内容

  • 没有找到相关文章

最新更新