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()? |
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)? |
| ?boolean | before(Timestamp?ts)? |
| ?int | compareTo(Date?o)? |
| ?int | compareTo(Timestamp?ts)? |
| ?boolean | equals(Object?ts)? |
| ?boolean | equals(Timestamp?ts)? |
| ?int | getNanos()(因為剛才說過了 我們不能通過java.util.Date來獲得毫秒 ,timestamp就自己提供) |
| ?long | getTime()? |
| ?void | setNanos(int?n)? |
| ?void | setTime(long?time)? |
| ?String | 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)? |
| ?String | toString()? |
| static?Date | valueOf(String?s)? |
可能有人發現了 在我們用這個java.sql.Date類型插入數據庫的時候會發現丟失了時分秒,發生了自動截取,這是為什么呢?
?????? 原來java.sql.Date是為了配合SQL DATE而設置的數據類型?!耙幏痘钡膉ava.sql.Date只包含年月日信息,時分秒毫秒都會清零。格式類似:YYYY-MM-DD。當我們調用ResultSet的
getDate()方法來獲得返回值時,java程序會參照"規范"的java.sql.Date來格式化數據庫中的數值。因此,如果數據庫中存在的非規范化部分的信息將會被劫取。所以我們要精確的日期時應該使用Timestamp
3. Time()
Time(long?time)?
??????????使用毫秒時間值構造?Time?對象。
| ?void | setTime(long?time)? |
| ?String | toString()? |
| static?Time | valueOf(String?s)? |
有了上面這些知識后,我們要進行轉換就發現一目了然了>>>基本都是可以通過getTime()方法獲得long類型的毫秒數 在通過構造函數把這毫秒數傳過去就完成了轉換。如:
java.util.Date d = new java.util.Date(sqlDate.getTime());
?
轉載于:https://www.cnblogs.com/java-class/p/4497906.html
總結
以上是生活随笔為你收集整理的Java 基础【12】 日期类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu设置squid代理
- 下一篇: 站立会议第7天