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 |
|
boolean |
|
clone() |
|
int |
|
boolean |
long |
getTime() |
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 |
|
boolean |
|
int |
compareTo(Date o) |
int |
|
boolean |
|
boolean |
|
int |
getNanos()(因為剛才說過了 我們不能通過java.util.Date來獲得毫秒 ,timestamp就自己提供) |
long |
getTime() |
void |
setNanos(int n) |
void |
setTime(long time) |
toString() |
|
static Timestamp |
valueOf(String s) |
因為是繼承了java.util.Date 所以也繼承了里面的方法。。這個類的主要作用就是在數據庫中插入時間,那有些人就會問為什么不用java.sql.Date,那么我們就來看下java.sql.Date>>
java.sql.Date》》
構造方法Date(long date)
使用給定毫秒時間值構造一個 Date 對象。
void |
setTime(long date) |
toString() |
|
static 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) |
toString() |
|
static Time |
有了上面這些知識后,我們要進行轉換就發現一目了然了>>>基本都是可以通過getTime()方法獲得long類型的毫秒數 在通過構造函數把這毫秒數傳過去就完成了轉換。如:
java.util.Date d = new java.util.Date(sqlDate.getTime());