util包下的Date與sql包下的Date之間的轉換


Java中的時間類型

  java.sql包下給出三個與數據庫相關的日期時間類型,分別是:

    Date:表示日期,只有年月日,沒有時分秒。會丟失時間;

    Time:表示時間,只有時分秒,沒有年月日。會丟失日期;

    Timestamp:表示時間戳,有年月日時分秒,以及毫秒。

  注:這三個類都是java.util.Date的子類。

時間類型相互轉換

  把數據庫的三種時間類型賦給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());


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM