java api中日期類型的繼承關系
java.lang.Object
--java.util.Date
--java.sql.Date
--java.sql.Time
--java.sql.Timestamp
java.util.Date表示特定的瞬間,精確到了毫秒:兩個構造函數(別的過期了的我就不說了) Date() Date(long date) 主要方法》》
boolean | after(Datewhen) 測試此日期是否在指定日期之后。 |
boolean | before(Datewhen) 測試此日期是否在指定日期之前。 |
Object | clone() 返回此對象的副本。 |
int | compareTo(DateanotherDate) 比較兩個日期的順序。 |
boolean | equals(Objectobj) 比較兩個日期的相等性。 |
long | getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此Date對象表示的毫秒數。(最常用的方法了) |
java.sql下面的包主要是用在jdbc下的使用
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(longtime)使用毫秒時間值構造Timestamp對象。
boolean | after(Timestampts) 指示此Timestamp對象是否晚于給定的Timestamp對象。 |
boolean | before(Timestampts) 指示此Timestamp對象是否早于給定的Timestamp對象。 |
int | compareTo(Dateo) 將此Timestamp對象與給定的Date(必須為Timestamp對象)相比較。 |
int | compareTo(Timestampts) 將此Timestamp對象與給定Timestamp對象相比較。 |
boolean | equals(Objectts) 測試此對象是否等于給定的Timestamp對象。 |
boolean | equals(Timestampts) 測試此Timestamp對象是否等于給定的Timestamp對象。 |
int | getNanos()(因為剛才說過了 我們不能通過java.util.Date來獲得毫秒 ,timestamp就自己提供) 獲取此Timestamp對象的nanos值。 |
long | getTime() 返回此Timestamp對象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數。 |
void | setNanos(intn) 將此Timestamp對象的nanos字段設置為給定值。 |
void | setTime(longtime) 設置此Timestamp對象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后time毫秒的時間點。 |
String | toString() 使用 JDBC 時間戳轉義格式編排時間戳。 |
staticTimestamp | valueOf(Strings) 將使用 JDBC 時間戳轉義格式的String對象轉換為Timestamp值。 |
因為是繼承了java.util.Date 所以也繼承了里面的方法。。這個類的主要作用就是在數據庫中插入時間,那有些人就會問為什么不用java.sql.Date,那么我們就來看下java.sql.Date>>
java.sql.Date》》
構造方法Date(longdate)使用給定毫秒時間值構造一個Date對象。
void | setTime(longdate) 使用給定毫秒時間值設置現有Date對象。 |
String | toString() 格式化日期轉義形式 yyyy-mm-dd 的日期。 |
staticDate | valueOf(Strings) 將 JDBC 日期轉義形式的字符串轉換成Date值。 |
可能有人發現了在我們用這個java.sql.Date類型插入數據庫的時候會發現丟失了時分秒,發生了自動截取,這是為什么呢?
原來java.sql.Date是為了配合SQL DATE而設置的數據類型。“規范化”的java.sql.Date只包含年月日信息,時分秒毫秒都會清零。格式類似:YYYY-MM-DD。當我們調用ResultSet的
getDate()方法來獲得返回值時,java程序會參照"規范"的java.sql.Date來格式化數據庫中的數值。因此,如果數據庫中存在的非規范化部分的信息將會被劫取。所以我們要精確的日期時應該使用Timestamp
Time():Time(longtime)使用毫秒時間值構造Time對象。
void | setTime(longtime) 使用毫秒時間值設置Time對象。 |
String | toString() 使用 JDBC 時間轉義格式對時間進行格式化。 |
staticTime | valueOf(Strings) 將使用 JDBC 時間轉義格式的字符串轉換為Time值。 |
有了上面這些知識后,我們要進行轉換就發現一目了然了>>>基本都是可以通過getTime()方法獲得long類型的毫秒數在通過構造函數把這毫秒數傳過去就完成了轉換。如:
java.util.Date d = newjava.util.Date(sqlDate.getTime());
新聞熱點
疑難解答