2012-06-15 65 views
0

我有一個數據庫將有標準的sql格式的UMT時間戳。我怎樣才能得到這些數據並用它設置一個java日期對象?到Java日期的SQL時間戳?

據我所知mysql是yyyy-mm-dd hh:mm:ss至於Java,日期/時間的東西一直躲避我。

如果有人知道這個好的圖書館,我願意提供建議。

回答

4

爲什麼不直接把它讀作Date

Date date = resultSet.getTimestamp("date_field"); 

Timestamp timestamp = resultSet.getTimestamp("date_time_field"); 

+1

這是*不安全的用於比較java.util.Date的其他實例,其實際上不是下面的java.sql.Timestamp實例。應該使用java.sql.Timestamp的long值創建新的java.util.Date – Affe

1

時間戳是一個日期的一個子類,這意味着它是可用到處都是日期。唯一的區別是,Timestamp比Date更精確(由於SQL規範)。

只需使用:

Timestamp t = resultSet.getTimestamp("columnname"); 
Date d = t; 

那話說回來,也有JDBC返回時間戳轉換成適當的日期值,省略納秒的一些好處。當您在應用程序的某個遠程部分中比較時間戳和日期時,時間戳和日期將不相等,儘管它們看起來是相同時間值的「粗糙」。因此,如果這會引起問題,創建僅使用.getTime通過時間戳()返回的值)

更多關於這在我的博客新的日期實例:Timestamp and Date equality when using Hibernate

(即使博客文章是關於Hibernate,它也適用於你的情況)