1. 程式人生 > >關於java.sql.Date和java.utils.Date的轉換(資料庫時間元素被讀取到java中)

關於java.sql.Date和java.utils.Date的轉換(資料庫時間元素被讀取到java中)

時間型別相互轉換

把資料庫的三種時間型別賦給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的構造方法中