我有一个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;
}
感谢。
答案 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为您提供的数据库中。所以,让我们摆脱字符串。