Java 基礎【12】 日期類型


java api中日期類型的繼承關系

    java.lang.Object

      --java.util.Date

          --java.sql.Date

            --java.sql.Time

              --java.sql.Timestamp

1. java.util.Date表示特定的瞬間,精確到了毫秒

     兩個構造函數(別的過期了的我就不說了) Date()   Date(long date) 主要方法》》

 boolean

after(Date when) 
          測試此日期是否在指定日期之后。

 boolean

before(Date when) 
          測試此日期是否在指定日期之前。

 Object

clone() 
          返回此對象的副本。

 int

compareTo(Date anotherDate) 
          比較兩個日期的順序。

 boolean

equals(Object obj) 
          比較兩個日期的相等性。

 long

getTime() 
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。(最常用的方法了)

java.sql下面的包主要是用在jdbc下的使用

2. Timestamp()

        此類型由 java.util.Date 和單獨的毫微秒值組成。只有整數秒才會存儲在 java.util.Date 組件中。小數秒(毫微秒)是獨立存在的。傳遞 java.util.Date 類型的值時,Timestamp.equals(Object) 方法永遠不會返回 true,因為日期的毫微秒組件是未知的。因此,相對於 java.util.Date.equals(Object)方法而言,Timestamp.equals(Object) 方法是不對稱的。此外,hashcode 方法使用基礎java.util.Date 實現並因此在其計算中不包括毫微秒。

鑒於 Timestamp 類和上述 java.util.Date 類之間的不同,建議代碼一般不要將 Timestamp 值視為java.util.Date 的實例。Timestamp 和 java.util.Date 之間的繼承關系實際上指的是實現繼承,而不是類型繼承。

   構造方法:

Timestamp(long time) 
          使用毫秒時間值構造 Timestamp 對象。

 boolean

after(Timestamp ts) 
          指示此 Timestamp 對象是否晚於給定的 Timestamp 對象。

 boolean

before(Timestamp ts) 
          指示此 Timestamp 對象是否早於給定的 Timestamp 對象。

 int

compareTo(Date o) 
          將此 Timestamp 對象與給定的 Date(必須為 Timestamp 對象)相比較。

 int

compareTo(Timestamp ts) 
          將此 Timestamp 對象與給定 Timestamp 對象相比較。

 boolean

equals(Object ts) 
          測試此對象是否等於給定的 Timestamp 對象。

 boolean

equals(Timestamp ts) 
          測試此 Timestamp 對象是否等於給定的 Timestamp 對象。

 int

getNanos()(因為剛才說過了 我們不能通過java.util.Date來獲得毫秒 ,timestamp就自己提供)
          獲取此 Timestamp 對象的 nanos 值。

 long

getTime() 
          返回此 Timestamp 對象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數。

 void

setNanos(int n) 
          將此 Timestamp 對象的 nanos 字段設置為給定值。

 void

setTime(long time) 
          設置此 Timestamp 對象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的時間點。

 String

toString() 
          使用 JDBC 時間戳轉義格式編排時間戳。

static Timestamp

valueOf(String s) 
          將使用 JDBC 時間戳轉義格式的 String 對象轉換為 Timestamp 值。

因為是繼承了java.util.Date  所以也繼承了里面的方法。。這個類的主要作用就是在數據庫中插入時間,那有些人就會問為什么不用java.sql.Date,那么我們就來看下java.sql.Date>>

java.sql.Date》》

 構造方法Date(long date) 
          使用給定毫秒時間值構造一個 Date 對象。

 void

setTime(long date) 
          使用給定毫秒時間值設置現有 Date 對象。

 String

toString() 
          格式化日期轉義形式 yyyy-mm-dd 的日期。

static Date

valueOf(String s) 
          將 JDBC 日期轉義形式的字符串轉換成 Date 值。

可能有人發現了 在我們用這個java.sql.Date類型插入數據庫的時候會發現丟失了時分秒,發生了自動截取,這是為什么呢?

       原來java.sql.Date是為了配合SQL DATE而設置的數據類型。“規范化”的java.sql.Date只包含年月日信息,時分秒毫秒都會清零。格式類似:YYYY-MM-DD。當我們調用ResultSet的

getDate()方法來獲得返回值時,java程序會參照"規范"的java.sql.Date來格式化數據庫中的數值。因此,如果數據庫中存在的非規范化部分的信息將會被劫取。所以我們要精確的日期時應該使用Timestamp

3. Time()

Time(long time) 
          使用毫秒時間值構造 Time 對象。

 void

setTime(long time) 
          使用毫秒時間值設置 Time 對象。

 String

toString() 
          使用 JDBC 時間轉義格式對時間進行格式化。

static Time

valueOf(String s) 
          將使用 JDBC 時間轉義格式的字符串轉換為 Time 值。

有了上面這些知識后,我們要進行轉換就發現一目了然了>>>基本都是可以通過getTime()方法獲得long類型的毫秒數 在通過構造函數把這毫秒數傳過去就完成了轉換。如:

java.util.Date d = new java.util.Date(sqlDate.getTime());

 


免責聲明!

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



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