H2数据库 - 隐式时间戳转换

时间:2015-01-20 00:53:22

标签: java hibernate h2

我的H2数据库中有一个时间戳列,其中包含2015-01-14 21:32:29等数据,但是当我通过JSTL检索这些值时,我得到以下值:1421261300000。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

Hibernate当前将时间存储为UTC时间(自1970年1月1日以来的毫秒数)。如果希望以人类可读的格式存储,则需要指定用户数据类型。幸运的是,这已经由Hibernate的Jadira用户类型库完成。

假设你的班级看起来像这样:

//other class fields declared above here
@Column
private Date theDate;

您只需要从here导入Jadira类型库,然后将Date类型更改为JodaTime / Java 8 DateTime对象。如果您不使用Java 8,请从here导入JodaTime。

当您添加以下注释时,Hibernate应自动将您的字段存储为人类可读的时间戳。

//Other class fields declared above here
@Column
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime theDate;

Violá你的时间戳现在是人类可读的。