Java Hibernate中的日期转换

时间:2016-06-27 23:00:46

标签: java spring hibernate datetime

我有一个Date字段将日期保存到DB中,日期字段应该是日期和时间格式(MM / dd / yyyy HH:mm:ss).. 因为我使用DateFormat将当前日期转换为,

 DateFormat dateFormat  = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
         Date date = new Date();
         String DateStr = dateFormat.format(date);

这里的结果将是String格式,并使用Hibernate在DB中保存为Date对象,我必须再次将该日期字符串转换为Date obj,

Date newdate = dateFormat.parse(DateStr);

所以我的问题是,有没有更好的方法将当前日期与时间作为日期对象返回.. 如果我们将字段类型设置为String并通过注释为,则Hibernate也会自动将String转换为Date,

@Temporal(TemporalType.DATE)
  @Column(name = "REQUESTED_DATE")
  public String getRequestedDate() {
        return requestedDate;
    }

感谢。

3 个答案:

答案 0 :(得分:1)

将注释更改为:

@Temporal(TemporalType.TIMESTAMP)

这会将时间持续到数据库。

答案 1 :(得分:0)

您可以使用java.sql.Date存储映射到SQL DATETIME(或MySQL变体)的值。我不明白为什么你说“通过使用新的日期(),我[原文如此]将只获得日期而不是时间”。这是不正确的。但是,它不是最佳的。您也可以使用java.sql.Timestamp。使用java.util.Calendar时,您可以获得最佳效果。

我在不到五分钟的谷歌搜索中找到http://www.developerscrappad.com/228/java/java-ee/ejb3-jpa-dealing-with-date-time-and-timestamp/,它很好地回答了你的问题。

答案 2 :(得分:0)

@Temporal(value = TemporalType.TIMESTAMP)
Date date;

您可以将日期对象直接存储到hibernate为您提供的数据库中。所以,让我们摆脱字符串。