2013-06-20 75 views
0

我使用JPA和MySQL存儲Java util的日期到MySQL作爲一個時間戳

在我的域對象,我有一個日期字段作爲

@Temporal(TemporalType.TIMESTAMP) 
private Date lastSeenDate; 

從我的UI的日期去爲格式的字符串DD-MM-YYYY

我用

final DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
final Date date = format.parse(dateString); 

但對於字符串日期

2013年6月6日

存儲在MySQL的日期是

0011-12-04 00:00:00.0

如何將其存儲到MySQL來

+2

使用'format.format(日期);' – jlordo

+0

請出示你所得到的日期的種類和你想獲得 –

+1

你是什麼意思是什麼「帶有時間戳」?我懷疑你誤解了java.util.Date的含義。 –

回答

0

在Java中所有時間基本上是時間戳,因爲它們代表在單個時間毫秒。

有沒有辦法,我能想到的僅僅應付日期,但你可能想看看java.util.Calendar。如果你可以設置小時,分鐘,秒和毫秒都爲零(或其他定義的時間),然後你可以幾天,幾個月甚至幾年更自然的工作。這不是一個很好的產品,但它運行得很好。

0

據的JavaDoc:java.util.Date分配Date對象,並使得它表示在其被分配的時間進行初始化,精確到毫秒。

因此,它就像數據庫一樣工作時間戳。它總是會有一個時間分量,儘管它可能都是零表示午夜。但是,你可以用同樣的SimpleDateFormat打印出java.util.Date沒有它的時間成分。

final DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
final Date utilDate = sdf.parse("2013-06-20"); 
System.out.println(sdf.format(utilDate)); // prints back 2013-06-20 

或者,你可能想看看java.sql.Date不具有時間分量。

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());