2013-08-21 365 views
1

我試圖格式化當前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); 
+0

哪些數據類型是你想存儲日期? – Thierry

+0

數據庫表列已設置爲「DATETIME」 – ThreaT

回答

2

嘗試使用這個(在你的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,「日期和時間模式」一節)