1

我正在尝试格式化当前datetime,然后使用休眠将其保存到数据库中。我让它使用默认日期格式保存,即:

Date date = new Date();
hibernateObject.setDate(date);
hibernateObject.save(date);

我找到了一种格式化它的方法,但它真的很不整洁而且似乎不起作用:

Date finalDate = null;
try {
    Date date = new Date();
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String sDate = df.format(date);
    finalDate = df.parse(sDate);
} catch (ParseException pe) {
    System.out.println("ParserException while attempting to establish date");
}
hibernateObject.setDate(date);
hibernateObject.save(date);
4

1 回答 1

3

尝试使用它(在您的 hibernateObject 类中):

@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
public Date getStartDate() {
    return startDate;
}
public void setStartDate(Date startDate) {
    this.startDate = startDate;
}

当您按照显示日期对象进行操作时,实际上没有任何变化。唯一发生的事情:您创建包含格式化日期的字符串。因此,您可以指定 DateTimeFormat 模式以将日期存储在该模式中。

另请注意,您的日期模式中的“hh”字符串实际上会给您从 1 到 12 的值。它是 AM/PM 小时。要获得 0-24 小时值,请改用“HH”(请参阅​​ http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html,“日期和时间模式”部分)

于 2013-08-21T18:15:21.853 回答