我有一個數據庫將有標準的sql格式的UMT時間戳。我怎樣才能得到這些數據並用它設置一個java日期對象?到Java日期的SQL時間戳?
據我所知mysql是yyyy-mm-dd hh:mm:ss
至於Java,日期/時間的東西一直躲避我。
如果有人知道這個好的圖書館,我願意提供建議。
我有一個數據庫將有標準的sql格式的UMT時間戳。我怎樣才能得到這些數據並用它設置一個java日期對象?到Java日期的SQL時間戳?
據我所知mysql是yyyy-mm-dd hh:mm:ss
至於Java,日期/時間的東西一直躲避我。
如果有人知道這個好的圖書館,我願意提供建議。
爲什麼不直接把它讀作Date
Date date = resultSet.getTimestamp("date_field");
Timestamp timestamp = resultSet.getTimestamp("date_time_field");
見
時間戳是一個日期的一個子類,這意味着它是可用到處都是日期。唯一的區別是,Timestamp比Date更精確(由於SQL規範)。
只需使用:
Timestamp t = resultSet.getTimestamp("columnname");
Date d = t;
那話說回來,也有JDBC返回時間戳轉換成適當的日期值,省略納秒的一些好處。當您在應用程序的某個遠程部分中比較時間戳和日期時,時間戳和日期將不相等,儘管它們看起來是相同時間值的「粗糙」。因此,如果這會引起問題,創建僅使用.getTime通過時間戳()返回的值)
更多關於這在我的博客新的日期實例:Timestamp and Date equality when using Hibernate
(即使博客文章是關於Hibernate,它也適用於你的情況)
這是*不安全的用於比較java.util.Date的其他實例,其實際上不是下面的java.sql.Timestamp實例。應該使用java.sql.Timestamp的long值創建新的java.util.Date – Affe