鴻蒙OS Date

2022-07-19 14:46 更新

Date

java.lang.Object

|---java.util.Date

public class Date
extends Object
implements Serializable, Cloneable, Comparable<Date>

Date 類表示特定的時間瞬間,精度為毫秒。

在 JDK 1.1 之前,Date 類有兩個附加功能。 它允許將日期解釋為年、月、日、小時、分鐘和秒值。 它還允許格式化和解析日期字符串。 不幸的是,這些函數(shù)的 API 不適合國際化。 從 JDK 1.1 開始,應使用 Calendar 類在日期和時間字段之間進行轉(zhuǎn)換,并且應使用 DateFormat 類來格式化和解析日期字符串。 Date 中的相應方法已棄用。

盡管 Date 類旨在反映協(xié)調(diào)世界時 (UTC),但它可能并不完全如此,這取決于 Java 虛擬機的主機環(huán)境。 幾乎所有現(xiàn)代操作系統(tǒng)都假定在所有情況下 1 天 = 24 × 60 × 60 = 86400 秒。 然而,在 UTC 中,大約每隔一兩年就會多出一秒,稱為“閏秒”。 閏秒總是作為一天的最后一秒添加,并且總是在 12 月 31 日或 6 月 30 日。例如,由于添加了閏秒,1995 年的最后一分鐘是 61 秒。 大多數(shù)計算機時鐘不夠準確,無法反映閏秒的區(qū)別。

一些計算機標準是根據(jù)格林威治標準時間 (GMT) 定義的,它等同于世界時間 (UT)。 GMT 是標準的“民用”名稱; UT 是同一標準的“科學”名稱。 UTC 和 UT 之間的區(qū)別在于,UTC 是基于原子鐘,而 UT 是基于天文觀測,對于所有實際目的來說,它是一根看不見的細毛。 由于地球自轉(zhuǎn)不均勻(它以復雜的方式減速和加速),UT 并不總是均勻流動。 根據(jù)需要在 UTC 中引入閏秒,以使 UTC 保持在 UT1 的 0.9 秒以內(nèi),UT1 是應用了某些更正的 UT 版本。 還有其他時間和日期系統(tǒng); 例如,基于衛(wèi)星的全球定位系統(tǒng) (GPS) 使用的時標與 UTC 同步,但未針對閏秒進行調(diào)整。 進一步信息的一個有趣來源是美國海軍天文臺,特別是時間理事會,位于:

     http://tycho.usno.navy.mil 

以及他們對“時間系統(tǒng)”的定義:

     http://tycho.usno.navy.mil/systime.html 

在接受或返回年、月、日、小時、分鐘和秒值的 Date 類的所有方法中,使用以下表示:

  • 年份 y 由整數(shù) y - 1900 表示。
  • 一個月用 0 到 11 的整數(shù)表示; 0 是一月,1 是二月,以此類推; 因此 11 是 12 月。
  • 日期(月中的某天)通常以 1 到 31 的整數(shù)表示。
  • 小時由 0 到 23 之間的整數(shù)表示。因此,從午夜到凌晨 1 點的小時是 0 小時,從中午到下午 1 點的小時。 是 12 小時。
  • 一分鐘以通常的方式用 0 到 59 的整數(shù)表示。
  • 秒用 0 到 61 的整數(shù)表示; 值 60 和 61 僅出現(xiàn)在閏秒中,即使如此,也僅出現(xiàn)在實際正確跟蹤閏秒的 Java 實現(xiàn)中。 由于目前引入閏秒的方式,同一分鐘內(nèi)不太可能出現(xiàn)兩個閏秒,但本規(guī)范遵循 ISO C 的日期和時間約定。

在所有情況下,為這些目的而給出的方法的論據(jù)不必落在指定的范圍內(nèi); 例如,日期可以指定為 1 月 32 日,并被解釋為 2 月 1 日。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
Date() 分配一個 Date 對象并對其進行初始化,以便它表示分配它的時間,精確到毫秒。
Date(int year, int month, int date) 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date) 取代。
Date(int year, int month, int date, int hrs, int min) 已棄用。 從 JDK 版本 1.1 開始,替換為 Calendar.set(year + 1900, month, date, hrs, min) 或 GregorianCalendar(year + 1900, month, date, hrs, min)。
Date(int year, int month, int date, int hrs, int min, int sec) 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(year + 1900, month, date, hrs, min, sec) 取代。
Date(long date) 分配一個 Date 對象并將其初始化以表示自稱為“紀元”的標準基準時間(即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數(shù)。
Date(String s) 已棄用。 從 JDK 1.1 版開始,由 DateFormat.parse(String s) 取代。

方法總結(jié)

修飾符和類型 方法 描述
boolean after(Date when) 測試此日期是否在指定日期之后。
boolean before(Date when) 測試此日期是否早于指定日期。
Object clone() 返回此對象的副本。
int compareTo(Date anotherDate) 比較兩個訂購日期。
boolean equals(Object obj) 比較兩個日期是否相等。
static Date from(Instant instant) 從 Instant 對象獲取 Date 的實例。
int getDate() 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。
int getDay() 已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.DAY_OF_WEEK) 取代。
int getHours() 已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。
int getMinutes() 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.get(Calendar.MINUTE) 取代。
int getMonth() 已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.MONTH) 取代。
int getSeconds() 已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.SECOND) 取代。
long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數(shù)。
int getTimezoneOffset() 已棄用。 從 JDK 版本 1.1 開始,替換為 -(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)。
int getYear() 已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.YEAR) - 1900 取代。
int hashCode() 返回此對象的哈希碼值。
static long parse(String s) 已棄用。 從 JDK 1.1 版開始,由 DateFormat.parse(String s) 取代。
void setDate(int date) 已棄用。 從 JDK 1.1 版開始,由 Calendar.set(Calendar.DAY_OF_MONTH, int date) 取代。
void setHours(int hours) 已棄用。 從 JDK 1.1 版開始,由 Calendar.set(Calendar.HOUR_OF_DAY, int hours) 取代。
void setMinutes(int minutes) 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(Calendar.MINUTE, int minutes) 取代。
void setMonth(int month) 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(Calendar.MONTH, int month) 取代。
void setSeconds(int seconds) 已棄用。 從 JDK 1.1 版開始,由 Calendar.set(Calendar.SECOND, int seconds) 取代。
void setTime(long time) 將此 Date 對象設(shè)置為表示 1970 年 1 月 1 日 00:00:00 GMT 之后的時間毫秒的時間點。
void setYear(int year) 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(Calendar.YEAR, year + 1900) 取代。
String toGMTString() 已棄用。 從 JDK 版本 1.1 開始,使用 GMT 時區(qū)替換為 DateFormat.format(Date date)。
Instant toInstant() 將此 Date 對象轉(zhuǎn)換為 Instant。
String toLocaleString() 已棄用。 從 JDK 1.1 版開始,由 DateFormat.format(Date date) 取代。
String toString() 將此 Date 對象轉(zhuǎn)換為以下形式的字符串:
static long UTC(int year, int month, int date, int hrs, int min, int sec) 已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(year + 1900, month, date, hrs, min, sec) 取代,使用 UTC 時區(qū),后跟 通過 Calendar.getTime().getTime()。
從類 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait

構(gòu)造函數(shù)詳細信息

Date

public Date()

分配一個 Date 對象并對其進行初始化,以便它表示分配它的時間,精確到毫秒。

Date

public Date(long date)

分配一個 Date 對象并將其初始化以表示自稱為“紀元”的標準基準時間(即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
date 自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數(shù)。

Date

@Deprecated public Date(int year, int month, int date)

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date) 取代。

分配一個 Date 對象并對其進行初始化,使其表示本地時間午夜,在年、月和日期參數(shù)指定的一天的開始。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 年減去 1900。
month 0-11 之間的月份。
date 1-31 之間的一個月中的一天。

Date

@Deprecated public Date(int year, int month, int date, int hrs, int min)

已棄用。 從 JDK 版本 1.1 開始,替換為 Calendar.set(year + 1900, month, date, hrs, min) 或 GregorianCalendar(year + 1900, month, date, hrs, min)。

分配一個 Date 對象并對其進行初始化,以便它表示本地時區(qū)中由年、月、日、小時和分鐘參數(shù)指定的分鐘開始處的瞬間。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 年減去 1900。
month 0-11 之間的月份。
date 1-31 之間的一個月中的一天。
hrs 0-23 之間的時間。
min 0-59 之間的分鐘數(shù)。

Date

@Deprecated public Date(int year, int month, int date, int hrs, int min, int sec)

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(year + 1900, month, date, hrs, min, sec) 取代。

分配一個 Date 對象并對其進行初始化,以便它表示本地時區(qū)中由年、月、日、小時、分鐘和秒?yún)?shù)指定的秒的開始時刻。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 年減去 1900。
month 0-11 之間的月份。
date 1-31 之間的一個月中的一天。
hrs 0-23 之間的時間。
min 0-59 之間的分鐘數(shù)。
sec 0-59 之間的秒數(shù)。

Date

@Deprecated public Date(String s)

已棄用。 從 JDK 1.1 版開始,由 DateFormat.parse(String s) 取代。

分配一個 Date 對象并對其進行初始化,以便它表示由字符串 s 指示的日期和時間,就像由 Date#parse 方法解釋一樣。

參數(shù):

參數(shù)名稱 參數(shù)描述
s 日期的字符串表示形式。

方法詳情

clone

public Object clone()

返回此對象的副本。

覆蓋:

在類 Object 中克隆

返回:

此實例的克隆。

UTC

@Deprecated public static long UTC(int year, int month, int date, int hrs, int min, int sec)

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(year + 1900, month, date, hrs, min, sec) 取代,使用 UTC 時區(qū),后跟 通過 Calendar.getTime().getTime()。

根據(jù)參數(shù)確定日期和時間。 參數(shù)被解釋為年、月、日、小時、小時內(nèi)的分鐘和分鐘內(nèi)的秒,與具有六個參數(shù)的 Date 構(gòu)造函數(shù)完全相同,只是參數(shù)是相對于 UTC 進行解釋的 而不是本地時區(qū)。 返回的時間表示為該時間與紀元(1970 年 1 月 1 日 00:00:00 GMT)的距離,以毫秒為單位。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 年減去 1900。
month 0-11 之間的月份。
date 1-31 之間的一個月中的一天。
hrs 0-23 之間的時間。
min 0-59 之間的分鐘數(shù)。
sec 0-59 之間的秒數(shù)。

返回:

參數(shù)指定的日期和時間自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數(shù)。

parse

@Deprecated public static long parse(String s)

已棄用。從 JDK 1.1 版開始,由 DateFormat.parse(String s) 取代。

嘗試將字符串 s 解釋為日期和時間的表示。如果嘗試成功,則返回指示的時間,表示為該時間與紀元(1970 年 1 月 1 日 00:00:00 GMT)的距離,以毫秒為單位。如果嘗試失敗,則會引發(fā) IllegalArgumentException。

它接受許多語法;特別是,它識別 IETF 標準日期語法:“Sat, 12 Aug 1995 13:30:00 GMT”。它還理解美國大陸時區(qū)縮寫,但對于一般用途,應使用時區(qū)偏移量:“Sat, 12 Aug 1995 13:30:00 GMT+0430”(格林威治以西 4 小時 30 分鐘)子午線)。如果未指定時區(qū),則假定為本地時區(qū)。 GMT 和 UTC 被認為是等效的。

字符串 s 從左到右處理,尋找感興趣的數(shù)據(jù)。 s 中位于 ASCII 括號字符 ( 和 ) 內(nèi)的任何材料都將被忽略。括號可以嵌套。否則,s 中允許的唯一字符是這些 ASCII 字符:

 abcdefghijklmnopqrstuvwxyz
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 0123456789,+-:/

和空白字符。

連續(xù)的十進制數(shù)字序列被視為十進制數(shù):

  • 如果一個數(shù)字前面帶有 + 或 - 并且已經(jīng)識別出年份,則該數(shù)字是時區(qū)偏移量。 如果該數(shù)字小于 24,則它是以小時為單位的偏移量。 否則,它被視為以分鐘為單位的偏移量,以 24 小時時間格式表示,不帶標點符號。 前面的 - 表示向西偏移。 時區(qū)偏移始終與 UTC(格林威治)相關(guān)。 因此,例如,字符串中出現(xiàn)的 -5 表示“格林威治以西 5 小時”,+0430 表示“格林威治以東 4 小時 30 分鐘”。 允許字符串冗余地指定 GMT、UT 或 UTC,例如 GMT-5 或 utc+0430。

  • 如果滿足以下條件之一,則該數(shù)字被視為年份:

  • 數(shù)字等于或大于 70,后跟空格、逗號、斜杠或字符串結(jié)尾
  • 數(shù)字小于70,并且已經(jīng)識別了一個月和一個月的一天

如果識別的年份數(shù)小于 100,則將其解釋為相對于一個世紀的縮寫年份,其日期在 Date 類初始化之前的 80 年和之后的 19 年內(nèi)。 調(diào)整年份數(shù)后,減去1900。 例如,如果當前年份是 1999,則假設(shè) 19 到 99 范圍內(nèi)的年份表示 1919 到 1999,而假設(shè) 0 到 18 之間的年份表示 2000 到 2018。請注意,這與年份的解釋略有不同 SimpleDateFormat 中使用的小于 100。

  • 如果數(shù)字后跟冒號,則將其視為一個小時,除非已經(jīng)識別出一個小時,在這種情況下,它被視為一分鐘。

  • 如果數(shù)字后跟斜線,則視為月份(減 1 以產(chǎn)生 0 到 11 范圍內(nèi)的數(shù)字),除非已經(jīng)識別月份,在這種情況下,它被視為 一個月的一天。

  • 如果數(shù)字后跟空格、逗號、連字符或字符串結(jié)尾,則如果已識別小時但未識別分鐘,則將其視為分鐘; 否則,如果一分鐘被識別,但不是一秒,則視為一秒; 否則,它被視為一個月中的一天。

連續(xù)的字母序列被視為一個單詞,處理如下:

  • 匹配 AM 的單詞,忽略大小寫,將被忽略(但如果一個小時未被識別或小于 1 或大于 12,則解析失敗)。
  • 匹配 PM 的單詞,忽略大小寫,將 12 添加到小時(但如果小時未被識別或小于 1 或大于 12,則解析失?。?/li>
  • 任何匹配 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 或 SATURDAY 前綴的任何單詞,忽略大小寫,將被忽略。例如,sat、Friday、TUE 和 Thurs 將被忽略。
  • 否則,任何匹配 1 月、2 月、3 月、4 月、5 月、6 月、7 月、8 月、9 月、10 月、11 月或 12 月的任何前綴的單詞,忽略大小寫,并按照此處給出的順序考慮它們,被識別為指定月份并轉(zhuǎn)換為數(shù)字(0 到 11)。例如,八月、九月、四月和十一月被識別為月份。 Ma也是如此,它被認為是MARCH,而不是MAY。
  • 任何匹配 GMT、UT 或 UTC 的單詞,忽略大小寫,都被視為指 UTC。
  • 任何與 EST、CST、MST 或 PST 匹配的單詞,忽略大小寫,都被認為是指北美的時區(qū),即分別位于格林威治以西 5、6、7 或 8 小時的時區(qū)。在夏令時期間,任何匹配 EDT、CDT、MDT 或 PDT(忽略大小寫)的單詞都被識別為分別指的是同一時區(qū)。

一旦掃描了整個字符串 s,它就會以兩種方式之一轉(zhuǎn)換為時間結(jié)果。 如果已識別時區(qū)或時區(qū)偏移,則年、月、月中的某天、小時、分鐘和秒都以 UTC 解釋,然后應用時區(qū)偏移。 否則,年、月、月中的某天、小時、分鐘和秒將在本地時區(qū)中解釋。

參數(shù):

參數(shù)名稱 參數(shù)描述
s 要解析為日期的字符串。

返回:

自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數(shù),由字符串參數(shù)表示。

getYear

@Deprecated public int getYear()

已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.YEAR) - 1900 取代。

返回一個值,該值是從包含或以此 Date 對象表示的時刻開始的年份減去 1900 的結(jié)果,如本地時區(qū)所解釋的那樣。

返回:

此日期所代表的年份,減去 1900。

setYear

@Deprecated public void setYear(int year)

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(Calendar.YEAR, year + 1900) 取代。

設(shè)置此 Date 對象的年份為指定值加 1900。修改此 Date 對象,使其表示指定年份內(nèi)的一個時間點,月、日、時、分、秒與之前相同, 按照當?shù)貢r區(qū)的解釋。 (當然,例如,如果日期是 2 月 29 日,并且年份設(shè)置為非閏年,那么新日期將被視為 3 月 1 日。)

參數(shù):

參數(shù)名稱 參數(shù)描述
year 年值。

getMonth

@Deprecated public int getMonth()

已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.MONTH) 取代。

返回一個表示月份的數(shù)字,該數(shù)字包含此 Date 對象表示的時間點或以該時間點開始。 返回的值介于 0 和 11 之間,其中值 0 表示一月。

返回:

此日期表示的月份。

setMonth

@Deprecated public void setMonth(int month)

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(Calendar.MONTH, int month) 取代。

將此日期的月份設(shè)置為指定值。 修改此 Date 對象,使其表示指定月份內(nèi)的一個時間點,其中年、日期、小時、分鐘和秒與以前相同,以本地時區(qū)解釋。 例如,如果日期是 10 月 31 日,并且月份設(shè)置為 6 月,那么新日期將被視為 7 月 1 日,因為 6 月只有 30 天。

參數(shù):

參數(shù)名稱 參數(shù)描述
month 0-11 之間的月份值。

getDate

@Deprecated public int getDate()

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。

返回此 Date 對象表示的月份中的哪一天。 返回的值介于 1 和 31 之間,表示包含此 Date 對象所表示的時間點或以該時間點開始的月份的日期,如本地時區(qū)所解釋的那樣。

返回:

此日期表示的月份中的某天。

setDate

@Deprecated public void setDate(int date)

已棄用。 從 JDK 1.1 版開始,由 Calendar.set(Calendar.DAY_OF_MONTH, int date) 取代。

將此 Date 對象的日期設(shè)置為指定值。 修改此 Date 對象,使其表示月份中指定日期內(nèi)的時間點,年、月、小時、分鐘和秒與以前相同,以本地時區(qū)解釋。 例如,如果日期是 4 月 30 日,并且日期設(shè)置為 31,那么它將被視為 5 月 1 日,因為 4 月只有 30 天。

參數(shù):

參數(shù)名稱 參數(shù)描述
date 1-31 之間的月份值。

getDay

@Deprecated public int getDay()

已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.DAY_OF_WEEK) 取代。

返回此日期表示的星期幾。 返回值(0 = 星期日,1 = 星期一,2 = 星期二,3 = 星期三,4 = 星期四,5 = 星期五,6 = 星期六)表示包含或開始于由此表示的時間瞬間的星期幾 日期對象,以本地時區(qū)解釋。

返回:

此日期表示的星期幾。

getHours

@Deprecated public int getHours()

已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。

返回此 Date 對象表示的小時。 返回值是一個數(shù)字(0 到 23),表示一天中的小時,該小時包含或開始于此 Date 對象表示的時刻,如本地時區(qū)所解釋的那樣。

返回:

此日期表示的小時。

setHours

@Deprecated public void setHours(int hours)

已棄用。 從 JDK 1.1 版開始,由 Calendar.set(Calendar.HOUR_OF_DAY, int hours) 取代。

將此 Date 對象的小時設(shè)置為指定值。 修改此 Date 對象,使其表示一天中指定小時內(nèi)的時間點,年、月、日、分和秒與以前相同,以本地時區(qū)解釋。

參數(shù):

參數(shù)名稱 參數(shù)描述
hours 小時值。

getMinutes

@Deprecated public int getMinutes()

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.get(Calendar.MINUTE) 取代。

返回此日期表示的小時后的分鐘數(shù),以本地時區(qū)解釋。 返回的值介于 0 和 59 之間。

返回:

此日期表示的小時后的分鐘數(shù)。

setMinutes

@Deprecated public void setMinutes(int minutes)

已棄用。 從 JDK 版本 1.1 開始,由 Calendar.set(Calendar.MINUTE, int minutes) 取代。

將此 Date 對象的分鐘設(shè)置為指定值。 修改此 Date 對象,使其表示指定分鐘內(nèi)的時間點,其中年、月、日、小時和秒與以前相同,以本地時區(qū)解釋。

參數(shù):

參數(shù)名稱 參數(shù)描述
minutes 分鐘的值。

getSeconds

@Deprecated public int getSeconds()

已棄用。 從 JDK 1.1 版開始,由 Calendar.get(Calendar.SECOND) 取代。

返回此日期表示的分鐘后的秒數(shù)。 返回的值介于 0 和 61 之間。值 60 和 61 只能出現(xiàn)在那些考慮閏秒的 Java 虛擬機上。

返回:

此日期表示的分鐘后的秒數(shù)。

setSeconds

@Deprecated public void setSeconds(int seconds)

已棄用。 從 JDK 1.1 版開始,由 Calendar.set(Calendar.SECOND, int seconds) 取代。

將此日期的秒數(shù)設(shè)置為指定值。 修改此 Date 對象,使其表示指定秒內(nèi)的時間點,其中年、月、日、小時和分鐘與以前相同,按本地時區(qū)解釋。

參數(shù):

參數(shù)名稱 參數(shù)描述
seconds 秒值。

getTime

public long getTime()

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

返回:

自 1970 年 1 月 1 日 00:00:00 GMT 以來此日期所代表的毫秒數(shù)。

setTime

public void setTime(long time)

將此 Date 對象設(shè)置為表示 1970 年 1 月 1 日 00:00:00 GMT 之后的時間毫秒的時間點。

參數(shù):

參數(shù)名稱 參數(shù)描述
time 毫秒數(shù)。

before

public boolean before(Date when)

測試此日期是否早于指定日期。

參數(shù):

參數(shù)名稱 參數(shù)描述
when 一個日期。

返回:

當且僅當此 Date 對象表示的時刻嚴格早于 when 表示的時刻時,才為true; 否則為false。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 when 為空

after

public boolean after(Date when)

測試此日期是否在指定日期之后。

參數(shù):

參數(shù)名稱 參數(shù)描述
when 一個日期。

返回:

當且僅當此 Date 對象表示的時刻嚴格晚于 when 表示的時刻時才為 true; 否則為 false。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 when 為空

equals

public boolean equals(Object obj)

比較兩個日期是否相等。 當且僅當參數(shù)不為 null 并且是表示與此對象相同的時間點(精確到毫秒)的 Date 對象時,結(jié)果才為真。

因此,當且僅當 getTime 方法為兩者返回相同的 long 值時,兩個 Date 對象才相等。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 比較的對象。

返回:

如果對象相同,則為 true; 否則為 false。

compareTo

public int compareTo(Date anotherDate)

比較兩個訂購日期。

指定者:

接口 ComparableDate 中的 compareTo

參數(shù):

參數(shù)名稱 參數(shù)描述
anotherDate 要比較的日期。

返回:

如果參數(shù) Date 等于此 Date,則值為 0; 如果此 Date 在 Date 參數(shù)之前,則值小于 0; 如果此 Date 在 Date 參數(shù)之后,則值大于 0。

Throws:

Throw名稱 Throw描述
NullPointerException 如果另一個日期為空。

hashCode

public int hashCode()

返回此對象的哈希碼值。 結(jié)果是 Date#getTime 方法返回的原始 long 值的兩半的異或。 也就是說,哈希碼是表達式的值:

 (int)(this.getTime()^(this.getTime() >>> 32)) 

覆蓋:

類 Object 中的 hashCode

返回:

此對象的哈希碼值。

toString

public String toString()

將此 Date 對象轉(zhuǎn)換為以下形式的字符串:

 dow mon dd hh:mm:ss zzz yyyy

在那里:

  • dow 是一周中的某一天(周日、周一、周二、周三、周四、周五、周六)。
  • mon 是月份(一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月)。
  • dd 是月份中的日期(01 到 31),為兩位小數(shù)。
  • hh 是一天中的小時(00 到 23),為兩位小數(shù)。
  • mm 是小時內(nèi)的分鐘(00 到 59),為兩位小數(shù)。
  • ss 是分鐘內(nèi)的秒數(shù)(00 到 61,為兩位小數(shù)。
  • zzz 是時區(qū)(可能反映夏令時)。 標準時區(qū)縮寫包括方法 parse 識別的縮寫。 如果時區(qū)信息不可用,則 zzz 為空 - 也就是說,它根本不包含任何字符。
  • yyyy 是年份,四位小數(shù)。

覆蓋:

類 Object 中的 toString

返回:

此日期的字符串表示形式。

toLocaleString

@Deprecated public String toLocaleString()

已棄用。 從 JDK 1.1 版開始,由 DateFormat.format(Date date) 取代。

以與實現(xiàn)相關(guān)的形式創(chuàng)建此 Date 對象的字符串表示形式。 目的是使 Java 應用程序的用戶應該熟悉該表單,無論它碰巧在哪里運行。 其意圖類似于 ISO C 的 strftime() 函數(shù)支持的“%c”格式。

返回:

此日期的字符串表示形式,使用語言環(huán)境約定。

toGMTString

@Deprecated public String toGMTString()

已棄用。 從 JDK 版本 1.1 開始,使用 GMT 時區(qū)替換為 DateFormat.format(Date date)。

創(chuàng)建此 Date 對象的字符串表示形式:

 d mon yyyy hh:mm:ss GMT

在那里:

  • d 是月份中的日期(1 到 31),為一位或兩位小數(shù)。
  • mon 是月份(一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月)。
  • yyyy 是年份,四位小數(shù)。
  • hh 是一天中的小時(00 到 23),為兩位小數(shù)。
  • mm 是小時內(nèi)的分鐘(00 到 59),為兩位小數(shù)。
  • ss 是分鐘內(nèi)的秒數(shù)(00 到 61),為兩位小數(shù)。
  • GMT 正是用于指示格林威治標準時間的 ASCII 字母“GMT”。

結(jié)果不取決于本地時區(qū)。

返回:

此日期的字符串表示形式,使用 Internet GMT 約定。

getTimezoneOffset

@Deprecated public int getTimezoneOffset()

已棄用。 從 JDK 版本 1.1 開始,替換為 -(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)。

返回相對于 UTC 的本地時區(qū)的偏移量(以分鐘為單位),該偏移量適用于此 Date 對象表示的時間。

例如,在馬薩諸塞州格林威治以西的五個時區(qū):

 new Date(96, 1, 14).getTimezoneOffset() returns 300

因為在 1996 年 2 月 14 日,使用的是標準時間(Eastern Standard Time),與 UTC 相差 5 小時; 但:

 new Date(96, 5, 1).getTimezoneOffset() returns 240

因為在 1996 年 6 月 1 日,正在使用夏令時(東部夏令時間),與 UTC 僅相差四個小時。

此方法產(chǎn)生的結(jié)果與計算結(jié)果相同:

 (this.getTime() - UTC(this.getYear(),
                       this.getMonth(),
                       this.getDate(),
                       this.getHours(),
                       this.getMinutes(),
                       this.getSeconds())) / (60 * 1000)

返回:

當前時區(qū)的時區(qū)偏移量,以分鐘為單位。

from

public static Date from(Instant instant)

從 Instant 對象獲取 Date 的實例。

Instant 使用納秒的精度,而 Date 使用毫秒的精度。 轉(zhuǎn)換將轉(zhuǎn)換任何多余的精度信息,就好像以納秒為單位的數(shù)量被整數(shù)除以一百萬一樣。

Instant 可以將點存儲在時間線上更遠的未來和更遠的過去,而不是 Date。 在這種情況下,此方法將引發(fā)異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
instant 轉(zhuǎn)換的瞬間

返回:

表示時間線上與提供的瞬間相同的點的日期

Throws:

Throw名稱 Throw描述
NullPointerException 如果 instant 為空。
IllegalArgumentException 如果 instant 太大而無法表示為日期

toInstant

public Instant toInstant()

將此 Date 對象轉(zhuǎn)換為 Instant。

轉(zhuǎn)換會創(chuàng)建一個 Instant,它表示時間線上與此日期相同的點。

返回:

表示時間線上與此 Date 對象相同的點的瞬間

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號