我正在尝试格式化当前的 datetime
,然后使用 hibernate 将其保存到数据库中。我使用默认日期格式保存它,即:
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);
最佳答案
尝试使用它(在您的 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 的值。现在是上午/下午。要获得 0-24 小时值,请改用“HH”(请参阅 http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html,“日期和时间模式”部分)
关于java - 格式化日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18364789/