日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 基础【12】 日期类型

發布時間:2025/4/9 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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());

?

轉載于:https://www.cnblogs.com/java-class/p/4497906.html

總結

以上是生活随笔為你收集整理的Java 基础【12】 日期类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。