java.util.Date 和 java.sql.Date 傻傻分不清楚

一直沒有搞清java.util.Date 和 java.sql.Date 的區別,總結一下

java.util.Date 和 java.sql.Date的關係

java.sql.Date是繼承java.util.Date的類,看看其在jdk裏的源碼解釋

A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL <code>DATE</code> value. A milliseconds value represents the number of milliseconds that have passed since January 1, 1970 00:00:00.000 GMT.

意思其實就是很薄的一層封裝,目的就是爲了讓JDBC能夠識別這是一個SQL的date類型,再粗略的看看它到底封裝了什麼,其實也沒發現什麼,不過toString方法是被覆寫了,猜測是寫入數據庫時有特殊的格式要求吧,沒有深究。總結一下:java.util.Date是用在除數據庫以外的地方,兩者之間也可以互相轉換。

java.sql.Date,java.sql.Time, java.sql.Timestamp的關係

看到java.sql.Date,順便也引出了java.sql.Time, java.sql.Timestamp這2個看似有些關聯的類,參考https://www.cnblogs.com/airduce/p/7069491.html發現,其實這3個類都是java.util.Date的子類,最主要的區別是裏面覆蓋了toString方法,簡單總結一下,就是這3個類裏面保存的時間是一樣的,只是最終在打印即調用toString方法時,有選擇的輸出相應應的值,寫了如下的代碼測試了這個想法:

       java.util.Date utilDate = new Date();
        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
        java.sql.Timestamp timestamp = new java.sql.Timestamp(utilDate.getTime());
        java.sql.Time time = new java.sql.Time(utilDate.getTime());
        System.out.println(utilDate);
        System.out.println(sqlDate);
        System.out.println(timestamp);
        System.out.println(time);
        //強制轉換一下
        java.util.Date convertDate = time;
        System.out.println(convertDate);

        //時間精度並未丟失,但是打印的值按照Time格式輸出
        System.out.println(utilDate.getTime());
        System.out.println(convertDate.getTime());
        java.util.Date newDate = new Date(time.getTime());
        System.out.println(newDate);

Mysql中Timestamp和Datetime的使用選擇

參考http://www.cnblogs.com/ivictor/p/5028368.html的說明,

對於TIMESTAMP,它把客戶端插入的時間從當前時區轉化爲UTC(世界標準時間)進行存儲。查詢時,將其又轉化爲客戶端當前時區進行返回,所能存儲的時間範圍爲:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。

對於DATETIME,不做任何改變,基本上是原樣輸入和輸出,所能存儲的時間範圍爲:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。

歡迎關注我的個人的博客www.zhijianliu.cn, 虛心求教,有錯誤還請指正輕拍,謝謝

版權聲明:本文出自志健的原創文章,未經博主允許不得轉載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章