關於java.sql.Date和java.utils.Date的轉換(資料庫時間元素被讀取到java中)
阿新 • • 發佈:2018-12-21
時間型別相互轉換
把資料庫的三種時間型別賦給java.util.Date,基本不用轉換,因為這是把子類物件給父類的引用,不需要轉換。
java.sql.Date date = …
java.util.Date d = date;
java.sql.Time time = …
java.util.Date d = time;
java.sql.Timestamp timestamp = …
java.util.Date d = timestamp;
當需要把java.util.Date轉換成資料庫的三種時間型別時,這就不能直接賦值了,這需要使用資料庫三種時間型別的構造器。java.sql包下的Date、Time、TimeStamp三個類的構造器都需要一個long型別的引數,表示毫秒值。建立這三個型別的物件,只需要有毫秒值即可。我們知道java.util.Date有getTime()方法可以獲取毫秒值,那麼這個轉換也就不是什麼問題了。
java.utl.Date d = new java.util.Date();
java.sql.Date date = new java.sql.Date(d.getTime());//會丟失時分秒
Time time = new Time(d.getTime());//會丟失年月日
Timestamp timestamp = new Timestamp(d.getTime());
總結一句話
java.utils.Date是java.sql.Date的父類.
子類的java.sql.Date資料可以直接賦值給java.utils.Date
父類的java.utls.Date資料不可以直接賦值給java.sql.Date
可以通過java.sql.Date的構造方法Date(long l)得知,
可以先把java.utils.Date時間用.getTime()得到一個時間的毫秒值
再把java.utils.Date的毫秒值傳遞到java.sql.Date的構造方法中