鸿蒙OS Date
Date
java.lang.Object
|---java.util.Date
public class Date
extends Object
implements Serializable, Cloneable, Comparable<Date>
Date 类表示特定的时间瞬间,精度为毫秒。
在 JDK 1.1 之前,Date 类有两个附加功能。 它允许将日期解释为年、月、日、小时、分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些函数的 API 不适合国际化。 从 JDK 1.1 开始,应使用 Calendar 类在日期和时间字段之间进行转换,并且应使用 DateFormat 类来格式化和解析日期字符串。 Date 中的相应方法已弃用。
尽管 Date 类旨在反映协调世界时 (UTC),但它可能并不完全如此,这取决于 Java 虚拟机的主机环境。 几乎所有现代操作系统都假定在所有情况下 1 天 = 24 × 60 × 60 = 86400 秒。 然而,在 UTC 中,大约每隔一两年就会多出一秒,称为“闰秒”。 闰秒总是作为一天的最后一秒添加,并且总是在 12 月 31 日或 6 月 30 日。例如,由于添加了闰秒,1995 年的最后一分钟是 61 秒。 大多数计算机时钟不够准确,无法反映闰秒的区别。
一些计算机标准是根据格林威治标准时间 (GMT) 定义的,它等同于世界时间 (UT)。 GMT 是标准的“民用”名称; UT 是同一标准的“科学”名称。 UTC 和 UT 之间的区别在于,UTC 是基于原子钟,而 UT 是基于天文观测,对于所有实际目的来说,它是一根看不见的细毛。 由于地球自转不均匀(它以复杂的方式减速和加速),UT 并不总是均匀流动。 根据需要在 UTC 中引入闰秒,以使 UTC 保持在 UT1 的 0.9 秒以内,UT1 是应用了某些更正的 UT 版本。 还有其他时间和日期系统; 例如,基于卫星的全球定位系统 (GPS) 使用的时标与 UTC 同步,但未针对闰秒进行调整。 进一步信息的一个有趣来源是美国海军天文台,特别是时间理事会,位于:
http://tycho.usno.navy.mil
以及他们对“时间系统”的定义:
http://tycho.usno.navy.mil/systime.html
在接受或返回年、月、日、小时、分钟和秒值的 Date 类的所有方法中,使用以下表示:
- 年份 y 由整数 y - 1900 表示。
- 一个月用 0 到 11 的整数表示; 0 是一月,1 是二月,以此类推; 因此 11 是 12 月。
- 日期(月中的某天)通常以 1 到 31 的整数表示。
- 小时由 0 到 23 之间的整数表示。因此,从午夜到凌晨 1 点的小时是 0 小时,从中午到下午 1 点的小时。 是 12 小时。
- 一分钟以通常的方式用 0 到 59 的整数表示。
- 秒用 0 到 61 的整数表示; 值 60 和 61 仅出现在闰秒中,即使如此,也仅出现在实际正确跟踪闰秒的 Java 实现中。 由于目前引入闰秒的方式,同一分钟内不太可能出现两个闰秒,但本规范遵循 ISO C 的日期和时间约定。
在所有情况下,为这些目的而给出的方法的论据不必落在指定的范围内; 例如,日期可以指定为 1 月 32 日,并被解释为 2 月 1 日。
构造函数摘要
构造函数 | 描述 |
---|---|
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)以来的指定毫秒数。 |
Date(String s) | 已弃用。 从 JDK 1.1 版开始,由 DateFormat.parse(String s) 取代。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
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 对象表示的毫秒数。 |
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 对象设置为表示 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 时区替换为 DateFormat.format(Date date)。 |
Instant | toInstant() | 将此 Date 对象转换为 Instant。 |
String | toLocaleString() | 已弃用。 从 JDK 1.1 版开始,由 DateFormat.format(Date date) 取代。 |
String | toString() | 将此 Date 对象转换为以下形式的字符串: |
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 时区,后跟 通过 Calendar.getTime().getTime()。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造函数详细信息
Date
public Date()
分配一个 Date 对象并对其进行初始化,以便它表示分配它的时间,精确到毫秒。
Date
public Date(long date)
分配一个 Date 对象并将其初始化以表示自称为“纪元”的标准基准时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
参数:
参数名称 | 参数描述 |
---|---|
date | 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。 |
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 对象并对其进行初始化,使其表示本地时间午夜,在年、月和日期参数指定的一天的开始。
参数:
参数名称 | 参数描述 |
---|---|
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 对象并对其进行初始化,以便它表示本地时区中由年、月、日、小时和分钟参数指定的分钟开始处的瞬间。
参数:
参数名称 | 参数描述 |
---|---|
year | 年减去 1900。 |
month | 0-11 之间的月份。 |
date | 1-31 之间的一个月中的一天。 |
hrs | 0-23 之间的时间。 |
min | 0-59 之间的分钟数。 |
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 对象并对其进行初始化,以便它表示本地时区中由年、月、日、小时、分钟和秒参数指定的秒的开始时刻。
参数:
参数名称 | 参数描述 |
---|---|
year | 年减去 1900。 |
month | 0-11 之间的月份。 |
date | 1-31 之间的一个月中的一天。 |
hrs | 0-23 之间的时间。 |
min | 0-59 之间的分钟数。 |
sec | 0-59 之间的秒数。 |
Date
@Deprecated public Date(String s)
已弃用。 从 JDK 1.1 版开始,由 DateFormat.parse(String s) 取代。
分配一个 Date 对象并对其进行初始化,以便它表示由字符串 s 指示的日期和时间,就像由 Date#parse 方法解释一样。
参数:
参数名称 | 参数描述 |
---|---|
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 时区,后跟 通过 Calendar.getTime().getTime()。
根据参数确定日期和时间。 参数被解释为年、月、日、小时、小时内的分钟和分钟内的秒,与具有六个参数的 Date 构造函数完全相同,只是参数是相对于 UTC 进行解释的 而不是本地时区。 返回的时间表示为该时间与纪元(1970 年 1 月 1 日 00:00:00 GMT)的距离,以毫秒为单位。
参数:
参数名称 | 参数描述 |
---|---|
year | 年减去 1900。 |
month | 0-11 之间的月份。 |
date | 1-31 之间的一个月中的一天。 |
hrs | 0-23 之间的时间。 |
min | 0-59 之间的分钟数。 |
sec | 0-59 之间的秒数。 |
返回:
参数指定的日期和时间自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
parse
@Deprecated public static long parse(String s)
已弃用。从 JDK 1.1 版开始,由 DateFormat.parse(String s) 取代。
尝试将字符串 s 解释为日期和时间的表示。如果尝试成功,则返回指示的时间,表示为该时间与纪元(1970 年 1 月 1 日 00:00:00 GMT)的距离,以毫秒为单位。如果尝试失败,则会引发 IllegalArgumentException。
它接受许多语法;特别是,它识别 IETF 标准日期语法:“Sat, 12 Aug 1995 13:30:00 GMT”。它还理解美国大陆时区缩写,但对于一般用途,应使用时区偏移量:“Sat, 12 Aug 1995 13:30:00 GMT+0430”(格林威治以西 4 小时 30 分钟)子午线)。如果未指定时区,则假定为本地时区。 GMT 和 UTC 被认为是等效的。
字符串 s 从左到右处理,寻找感兴趣的数据。 s 中位于 ASCII 括号字符 ( 和 ) 内的任何材料都将被忽略。括号可以嵌套。否则,s 中允许的唯一字符是这些 ASCII 字符:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789,+-:/
和空白字符。
连续的十进制数字序列被视为十进制数:
- 如果一个数字前面带有 + 或 - 并且已经识别出年份,则该数字是时区偏移量。 如果该数字小于 24,则它是以小时为单位的偏移量。 否则,它被视为以分钟为单位的偏移量,以 24 小时时间格式表示,不带标点符号。 前面的 - 表示向西偏移。 时区偏移始终与 UTC(格林威治)相关。 因此,例如,字符串中出现的 -5 表示“格林威治以西 5 小时”,+0430 表示“格林威治以东 4 小时 30 分钟”。 允许字符串冗余地指定 GMT、UT 或 UTC,例如 GMT-5 或 utc+0430。
- 如果满足以下条件之一,则该数字被视为年份:
- 数字等于或大于 70,后跟空格、逗号、斜杠或字符串结尾
- 数字小于70,并且已经识别了一个月和一个月的一天
如果识别的年份数小于 100,则将其解释为相对于一个世纪的缩写年份,其日期在 Date 类初始化之前的 80 年和之后的 19 年内。 调整年份数后,减去1900。 例如,如果当前年份是 1999,则假设 19 到 99 范围内的年份表示 1919 到 1999,而假设 0 到 18 之间的年份表示 2000 到 2018。请注意,这与年份的解释略有不同 SimpleDateFormat 中使用的小于 100。
- 如果数字后跟冒号,则将其视为一个小时,除非已经识别出一个小时,在这种情况下,它被视为一分钟。
- 如果数字后跟斜线,则视为月份(减 1 以产生 0 到 11 范围内的数字),除非已经识别月份,在这种情况下,它被视为 一个月的一天。
- 如果数字后跟空格、逗号、连字符或字符串结尾,则如果已识别小时但未识别分钟,则将其视为分钟; 否则,如果一分钟被识别,但不是一秒,则视为一秒; 否则,它被视为一个月中的一天。
连续的字母序列被视为一个单词,处理如下:
- 匹配 AM 的单词,忽略大小写,将被忽略(但如果一个小时未被识别或小于 1 或大于 12,则解析失败)。
- 匹配 PM 的单词,忽略大小写,将 12 添加到小时(但如果小时未被识别或小于 1 或大于 12,则解析失败)。
- 任何匹配 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 或 SATURDAY 前缀的任何单词,忽略大小写,将被忽略。例如,sat、Friday、TUE 和 Thurs 将被忽略。
- 否则,任何匹配 1 月、2 月、3 月、4 月、5 月、6 月、7 月、8 月、9 月、10 月、11 月或 12 月的任何前缀的单词,忽略大小写,并按照此处给出的顺序考虑它们,被识别为指定月份并转换为数字(0 到 11)。例如,八月、九月、四月和十一月被识别为月份。 Ma也是如此,它被认为是MARCH,而不是MAY。
- 任何匹配 GMT、UT 或 UTC 的单词,忽略大小写,都被视为指 UTC。
- 任何与 EST、CST、MST 或 PST 匹配的单词,忽略大小写,都被认为是指北美的时区,即分别位于格林威治以西 5、6、7 或 8 小时的时区。在夏令时期间,任何匹配 EDT、CDT、MDT 或 PDT(忽略大小写)的单词都被识别为分别指的是同一时区。
一旦扫描了整个字符串 s,它就会以两种方式之一转换为时间结果。 如果已识别时区或时区偏移,则年、月、月中的某天、小时、分钟和秒都以 UTC 解释,然后应用时区偏移。 否则,年、月、月中的某天、小时、分钟和秒将在本地时区中解释。
参数:
参数名称 | 参数描述 |
---|---|
s | 要解析为日期的字符串。 |
返回:
自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,由字符串参数表示。
getYear
@Deprecated public int getYear()
已弃用。 从 JDK 1.1 版开始,由 Calendar.get(Calendar.YEAR) - 1900 取代。
返回一个值,该值是从包含或以此 Date 对象表示的时刻开始的年份减去 1900 的结果,如本地时区所解释的那样。
返回:
此日期所代表的年份,减去 1900。
setYear
@Deprecated public void setYear(int year)
已弃用。 从 JDK 版本 1.1 开始,由 Calendar.set(Calendar.YEAR, year + 1900) 取代。
设置此 Date 对象的年份为指定值加 1900。修改此 Date 对象,使其表示指定年份内的一个时间点,月、日、时、分、秒与之前相同, 按照当地时区的解释。 (当然,例如,如果日期是 2 月 29 日,并且年份设置为非闰年,那么新日期将被视为 3 月 1 日。)
参数:
参数名称 | 参数描述 |
---|---|
year | 年值。 |
getMonth
@Deprecated public int getMonth()
已弃用。 从 JDK 1.1 版开始,由 Calendar.get(Calendar.MONTH) 取代。
返回一个表示月份的数字,该数字包含此 Date 对象表示的时间点或以该时间点开始。 返回的值介于 0 和 11 之间,其中值 0 表示一月。
返回:
此日期表示的月份。
setMonth
@Deprecated public void setMonth(int month)
已弃用。 从 JDK 版本 1.1 开始,由 Calendar.set(Calendar.MONTH, int month) 取代。
将此日期的月份设置为指定值。 修改此 Date 对象,使其表示指定月份内的一个时间点,其中年、日期、小时、分钟和秒与以前相同,以本地时区解释。 例如,如果日期是 10 月 31 日,并且月份设置为 6 月,那么新日期将被视为 7 月 1 日,因为 6 月只有 30 天。
参数:
参数名称 | 参数描述 |
---|---|
month | 0-11 之间的月份值。 |
getDate
@Deprecated public int getDate()
已弃用。 从 JDK 版本 1.1 开始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。
返回此 Date 对象表示的月份中的哪一天。 返回的值介于 1 和 31 之间,表示包含此 Date 对象所表示的时间点或以该时间点开始的月份的日期,如本地时区所解释的那样。
返回:
此日期表示的月份中的某天。
setDate
@Deprecated public void setDate(int date)
已弃用。 从 JDK 1.1 版开始,由 Calendar.set(Calendar.DAY_OF_MONTH, int date) 取代。
将此 Date 对象的日期设置为指定值。 修改此 Date 对象,使其表示月份中指定日期内的时间点,年、月、小时、分钟和秒与以前相同,以本地时区解释。 例如,如果日期是 4 月 30 日,并且日期设置为 31,那么它将被视为 5 月 1 日,因为 4 月只有 30 天。
参数:
参数名称 | 参数描述 |
---|---|
date | 1-31 之间的月份值。 |
getDay
@Deprecated public int getDay()
已弃用。 从 JDK 1.1 版开始,由 Calendar.get(Calendar.DAY_OF_WEEK) 取代。
返回此日期表示的星期几。 返回值(0 = 星期日,1 = 星期一,2 = 星期二,3 = 星期三,4 = 星期四,5 = 星期五,6 = 星期六)表示包含或开始于由此表示的时间瞬间的星期几 日期对象,以本地时区解释。
返回:
此日期表示的星期几。
getHours
@Deprecated public int getHours()
已弃用。 从 JDK 1.1 版开始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。
返回此 Date 对象表示的小时。 返回值是一个数字(0 到 23),表示一天中的小时,该小时包含或开始于此 Date 对象表示的时刻,如本地时区所解释的那样。
返回:
此日期表示的小时。
setHours
@Deprecated public void setHours(int hours)
已弃用。 从 JDK 1.1 版开始,由 Calendar.set(Calendar.HOUR_OF_DAY, int hours) 取代。
将此 Date 对象的小时设置为指定值。 修改此 Date 对象,使其表示一天中指定小时内的时间点,年、月、日、分和秒与以前相同,以本地时区解释。
参数:
参数名称 | 参数描述 |
---|---|
hours | 小时值。 |
getMinutes
@Deprecated public int getMinutes()
已弃用。 从 JDK 版本 1.1 开始,由 Calendar.get(Calendar.MINUTE) 取代。
返回此日期表示的小时后的分钟数,以本地时区解释。 返回的值介于 0 和 59 之间。
返回:
此日期表示的小时后的分钟数。
setMinutes
@Deprecated public void setMinutes(int minutes)
已弃用。 从 JDK 版本 1.1 开始,由 Calendar.set(Calendar.MINUTE, int minutes) 取代。
将此 Date 对象的分钟设置为指定值。 修改此 Date 对象,使其表示指定分钟内的时间点,其中年、月、日、小时和秒与以前相同,以本地时区解释。
参数:
参数名称 | 参数描述 |
---|---|
minutes | 分钟的值。 |
getSeconds
@Deprecated public int getSeconds()
已弃用。 从 JDK 1.1 版开始,由 Calendar.get(Calendar.SECOND) 取代。
返回此日期表示的分钟后的秒数。 返回的值介于 0 和 61 之间。值 60 和 61 只能出现在那些考虑闰秒的 Java 虚拟机上。
返回:
此日期表示的分钟后的秒数。
setSeconds
@Deprecated public void setSeconds(int seconds)
已弃用。 从 JDK 1.1 版开始,由 Calendar.set(Calendar.SECOND, int seconds) 取代。
将此日期的秒数设置为指定值。 修改此 Date 对象,使其表示指定秒内的时间点,其中年、月、日、小时和分钟与以前相同,按本地时区解释。
参数:
参数名称 | 参数描述 |
---|---|
seconds | 秒值。 |
getTime
public long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
返回:
自 1970 年 1 月 1 日 00:00:00 GMT 以来此日期所代表的毫秒数。
setTime
public void setTime(long time)
将此 Date 对象设置为表示 1970 年 1 月 1 日 00:00:00 GMT 之后的时间毫秒的时间点。
参数:
参数名称 | 参数描述 |
---|---|
time | 毫秒数。 |
before
public boolean before(Date when)
测试此日期是否早于指定日期。
参数:
参数名称 | 参数描述 |
---|---|
when | 一个日期。 |
返回:
当且仅当此 Date 对象表示的时刻严格早于 when 表示的时刻时,才为true; 否则为false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果 when 为空 |
after
public boolean after(Date when)
测试此日期是否在指定日期之后。
参数:
参数名称 | 参数描述 |
---|---|
when | 一个日期。 |
返回:
当且仅当此 Date 对象表示的时刻严格晚于 when 表示的时刻时才为 true; 否则为 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果 when 为空 |
equals
public boolean equals(Object obj)
比较两个日期是否相等。 当且仅当参数不为 null 并且是表示与此对象相同的时间点(精确到毫秒)的 Date 对象时,结果才为真。
因此,当且仅当 getTime 方法为两者返回相同的 long 值时,两个 Date 对象才相等。
覆盖:
类 Object 中的等于
参数:
参数名称 | 参数描述 |
---|---|
obj | 比较的对象。 |
返回:
如果对象相同,则为 true; 否则为 false。
compareTo
public int compareTo(Date anotherDate)
比较两个订购日期。
指定者:
接口 ComparableDate 中的 compareTo
参数:
参数名称 | 参数描述 |
---|---|
anotherDate | 要比较的日期。 |
返回:
如果参数 Date 等于此 Date,则值为 0; 如果此 Date 在 Date 参数之前,则值小于 0; 如果此 Date 在 Date 参数之后,则值大于 0。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果另一个日期为空。 |
hashCode
public int hashCode()
返回此对象的哈希码值。 结果是 Date#getTime 方法返回的原始 long 值的两半的异或。 也就是说,哈希码是表达式的值:
(int)(this.getTime()^(this.getTime() >>> 32))
覆盖:
类 Object 中的 hashCode
返回:
此对象的哈希码值。
toString
public String toString()
将此 Date 对象转换为以下形式的字符串:
dow mon dd hh:mm:ss zzz yyyy
在那里:
- dow 是一周中的某一天(周日、周一、周二、周三、周四、周五、周六)。
- mon 是月份(一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月)。
- dd 是月份中的日期(01 到 31),为两位小数。
- hh 是一天中的小时(00 到 23),为两位小数。
- mm 是小时内的分钟(00 到 59),为两位小数。
- ss 是分钟内的秒数(00 到 61,为两位小数。
- zzz 是时区(可能反映夏令时)。 标准时区缩写包括方法 parse 识别的缩写。 如果时区信息不可用,则 zzz 为空 - 也就是说,它根本不包含任何字符。
- yyyy 是年份,四位小数。
覆盖:
类 Object 中的 toString
返回:
此日期的字符串表示形式。
toLocaleString
@Deprecated public String toLocaleString()
已弃用。 从 JDK 1.1 版开始,由 DateFormat.format(Date date) 取代。
以与实现相关的形式创建此 Date 对象的字符串表示形式。 目的是使 Java 应用程序的用户应该熟悉该表单,无论它碰巧在哪里运行。 其意图类似于 ISO C 的 strftime() 函数支持的“%c”格式。
返回:
此日期的字符串表示形式,使用语言环境约定。
toGMTString
@Deprecated public String toGMTString()
已弃用。 从 JDK 版本 1.1 开始,使用 GMT 时区替换为 DateFormat.format(Date date)。
创建此 Date 对象的字符串表示形式:
d mon yyyy hh:mm:ss GMT
在那里:
- d 是月份中的日期(1 到 31),为一位或两位小数。
- mon 是月份(一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月)。
- yyyy 是年份,四位小数。
- hh 是一天中的小时(00 到 23),为两位小数。
- mm 是小时内的分钟(00 到 59),为两位小数。
- ss 是分钟内的秒数(00 到 61),为两位小数。
- GMT 正是用于指示格林威治标准时间的 ASCII 字母“GMT”。
结果不取决于本地时区。
返回:
此日期的字符串表示形式,使用 Internet GMT 约定。
getTimezoneOffset
@Deprecated public int getTimezoneOffset()
已弃用。 从 JDK 版本 1.1 开始,替换为 -(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)。
返回相对于 UTC 的本地时区的偏移量(以分钟为单位),该偏移量适用于此 Date 对象表示的时间。
例如,在马萨诸塞州格林威治以西的五个时区:
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 仅相差四个小时。
此方法产生的结果与计算结果相同:
(this.getTime() - UTC(this.getYear(),
this.getMonth(),
this.getDate(),
this.getHours(),
this.getMinutes(),
this.getSeconds())) / (60 * 1000)
返回:
当前时区的时区偏移量,以分钟为单位。
from
public static Date from(Instant instant)
从 Instant 对象获取 Date 的实例。
Instant 使用纳秒的精度,而 Date 使用毫秒的精度。 转换将转换任何多余的精度信息,就好像以纳秒为单位的数量被整数除以一百万一样。
Instant 可以将点存储在时间线上更远的未来和更远的过去,而不是 Date。 在这种情况下,此方法将引发异常。
参数:
参数名称 | 参数描述 |
---|---|
instant | 转换的瞬间 |
返回:
表示时间线上与提供的瞬间相同的点的日期
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果 instant 为空。 |
IllegalArgumentException | 如果 instant 太大而无法表示为日期 |
toInstant
public Instant toInstant()
将此 Date 对象转换为 Instant。
转换会创建一个 Instant,它表示时间线上与此日期相同的点。
返回:
表示时间线上与此 Date 对象相同的点的瞬间
更多建议: