- 所有已实现的接口:
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 同步,但not调整闰秒。一个有趣的进一步信息来源是美国海军天文台 (USNO):
https://www.usno.navy.mil/USNO
以及关于“时间系统”的材料:
https://www.usno.navy.mil/USNO/time/master-clock/systems-of-time
其中描述了各种不同的时间系统,包括 UT、UT1 和 UTC。
在接受或返回年、月、日、小时、分钟和秒值的类 Date 的所有方法中,使用以下表示:
- 一年y由整数表示y
- 1900. - 月份用0到11的整数表示; 0 是一月,1 是二月,依此类推;因此 11 是十二月。
- 日期(月中的某天)通常由 1 到 31 之间的整数表示。
- 小时由 0 到 23 之间的整数表示。因此,从午夜到凌晨 1 点是小时 0,从中午到下午 1 点是小时 12。
- 按照通常的方式,一分钟由 0 到 59 之间的整数表示。
- 秒用0到61的整数表示;值 60 和 61 只出现在闰秒中,即使这样也只出现在实际正确跟踪闰秒的 Java 实现中。由于当前引入闰秒的方式,在同一分钟内出现两个闰秒的可能性极小,但此规范遵循 ISO C 的日期和时间约定。
在所有情况下,为这些目的提供给方法的参数不必在指定的范围内;例如,日期可能指定为 1 月 32 日,并被解释为 2 月 1 日。
- 自从:
- 1.0
- 参见:
-
构造方法总结
构造方法构造方法描述Date()分配一个Date对象并对其进行初始化,使其代表分配它的时间,精确到毫秒。Date(int year, int month, int 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)以来指定的毫秒数。已弃用。从 JDK 1.1 版开始,由DateFormat.parse(String s)取代。 -
方法总结
修饰符和类型方法描述boolean测试此日期是否在指定日期之后。boolean测试此日期是否早于指定日期。clone()返回此对象的副本。int比较两个日期以进行排序。boolean比较两个日期是否相等。static Date从Instant对象获取Date的实例。intgetDate()已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.DAY_OF_MONTH)取代。intgetDay()已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.DAY_OF_WEEK)取代。intgetHours()已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.HOUR_OF_DAY)取代。int已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.MINUTE)取代。intgetMonth()已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.MONTH)取代。int已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.SECOND)取代。longgetTime()返回此Date对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。int已弃用。从 JDK 1.1 版开始,由-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)取代。intgetYear()已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.YEAR) - 1900取代。inthashCode()返回此对象的哈希码值。static long已弃用。从 JDK 1.1 版开始,由DateFormat.parse(String s)取代。voidsetDate(int date) 已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.DAY_OF_MONTH, int date)取代。voidsetHours(int hours) 已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.HOUR_OF_DAY, int hours)取代。voidsetMinutes(int minutes) 已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.MINUTE, int minutes)取代。voidsetMonth(int month) 已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.MONTH, int month)取代。voidsetSeconds(int seconds) 已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.SECOND, int seconds)取代。voidsetTime(long time) 设置此Date对象以表示格林威治标准时间 1970 年 1 月 1 日 00:00:00 后time毫秒的时间点。voidsetYear(int year) 已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.YEAR, year + 1900)取代。已弃用。从 JDK 1.1 版开始,由DateFormat.format(Date date)取代,使用 GMTTimeZone。将此Date对象转换为Instant。已弃用。从 JDK 1.1 版开始,由DateFormat.format(Date date)取代。toString()将此Date对象转换为以下形式的String:static longUTC(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),使用 UTCTimeZone,后跟Calendar.getTime().getTime()。
-
构造方法详细信息
-
Date
public Date()分配一个Date对象并对其进行初始化,使其代表分配它的时间,精确到毫秒。- 参见:
-
Date
public Date(long date) 分配一个Date对象并将其初始化以表示自标准基准时间(称为“纪元”,即格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来指定的毫秒数。- 参数:
date- 自格林威治标准时间 1970 年 1 月 1 日 00:00:00 以来的毫秒数。- 参见:
-
Date
已弃用。从 JDK 1.1 版开始,由Calendar.set(year + 1900, month, date)或GregorianCalendar(year + 1900, month, date)取代。分配一个Date对象并对其进行初始化,使其代表year、month和date参数指定的一天开始时的午夜、当地时间。- 参数:
year- 年份减去 1900。month- 0-11 之间的月份。date- 1-31 之间的月份中的第几天。- 参见:
-
Date
已弃用。从 JDK 1.1 版开始,由Calendar.set(year + 1900, month, date, hrs, min)或GregorianCalendar(year + 1900, month, date, hrs, min)取代。分配一个Date对象并对其进行初始化,使其代表本地时区中year、month、date、hrs和min参数指定的分钟开始时刻。- 参数:
year- 年份减去 1900。month- 0-11 之间的月份。date- 1-31 之间的月份中的第几天。hrs- 0-23 之间的小时数。min- 0-59 之间的分钟数。- 参见:
-
Date
已弃用。从 JDK 1.1 版开始,由Calendar.set(year + 1900, month, date, hrs, min, sec)或GregorianCalendar(year + 1900, month, date, hrs, min, sec)取代。分配一个Date对象并对其进行初始化,使其代表本地时区中year、month、date、hrs、min和sec参数指定的第二个开始时刻。- 参数:
year- 年份减去 1900。month- 0-11 之间的月份。date- 1-31 之间的月份中的第几天。hrs- 0-23 之间的小时数。min- 0-59 之间的分钟数。sec- 0-59 之间的秒数。- 参见:
-
Date
已弃用。从 JDK 1.1 版开始,由DateFormat.parse(String s)取代。- 参数:
s- 日期的字符串表示形式。- 参见:
-
-
方法详情
-
clone
返回此对象的副本。 -
UTC
已弃用。从 JDK 1.1 版开始,替换为Calendar.set(year + 1900, month, date, hrs, min, sec)或GregorianCalendar(year + 1900, month, date, hrs, min, sec),使用 UTCTimeZone,后跟Calendar.getTime().getTime()。根据参数确定日期和时间。参数被解释为年、月、月中的某天、一天中的小时、小时中的分钟和分钟中的秒,与具有六个参数的Date构造函数完全相同,除了参数是相对于 UTC 解释的而不是本地时区。返回的指示时间表示为该时间距纪元(1970 年 1 月 1 日格林威治标准时间 00:00:00)的距离,以毫秒为单位。- 参数:
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
已弃用。从 JDK 1.1 版开始,由DateFormat.parse(String s)取代。尝试将字符串s解释为日期和时间的表示。如果尝试成功,则返回指示的时间,表示该时间与纪元(1970 年 1 月 1 日格林威治标准时间 00:00:00)的距离,以毫秒为单位。如果尝试失败,则会抛出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表示“格林威治以西五小时”,+0430表示“格林威治以东四小时三十分钟”。允许字符串冗余指定GMT、UT或UTC- 例如,GMT-5或utc+0430。 - 如果满足以下条件之一,则该数字被视为年份数字:
- 数字等于或大于 70,后跟空格、逗号、斜杠或字符串结尾
- 数量小于70,月份和日期都已经被识别
SimpleDateFormat中使用的少于 100 个。 - 如果数字后跟一个冒号,则将其视为一个小时,除非已经识别出一个小时,在这种情况下,它将被视为一分钟。
- 如果数字后跟斜杠,则视为月份(减 1 以产生
0到11范围内的数字),除非月份已经被识别,在这种情况下它被视为一天月的。 - 如果数字后跟空格、逗号、连字符或字符串结尾,则如果已识别小时但未识别分钟,则将其视为分钟;否则,如果识别了分钟但没有识别秒,则将其视为秒;否则,它被视为一个月中的一天。
连续的字母序列被视为一个单词,并按如下方式处理:
- 忽略大小写匹配
AM的单词将被忽略(但如果小时未被识别或小于1或大于12则解析失败)。 - 匹配
PM的单词忽略大小写,将12添加到小时(但如果小时未被识别或小于1或大于12则解析失败)。 - 任何与
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY或SATURDAY的任何前缀匹配且忽略大小写的单词都将被忽略。例如,sat, Friday, TUE和Thurs将被忽略。 - 否则,任何与
JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER或DECEMBER的任何前缀匹配的单词,忽略大小写,并按照此处给出的顺序考虑它们,将被识别为指定月份并转换为数字(0到11)。例如,aug, Sept, april和NOV被识别为月份。Ma也是如此,它被识别为MARCH,而不是MAY。 - 任何匹配
GMT, UT或UTC的单词,忽略大小写,都被视为引用 UTC。 - 任何与
EST, CST, MST或PST匹配且忽略大小写的单词都被识别为指的是北美的时区,分别位于格林威治以西五小时、六小时、七小时或八小时。在夏令时期间,任何匹配EDT, CDT, MDT或PDT且忽略大小写的单词都被识别为分别指代同一时区。
一旦扫描了整个字符串 s,它就会以两种方式之一转换为时间结果。如果已识别时区或时区偏移量,则年、月、月中的日期、小时、分钟和秒将以 UTC 解释,然后应用时区偏移量。否则,年、月、月中的某天、小时、分钟和秒将按本地时区解释。
- 参数:
s- 要解析为日期的字符串。- 返回:
- 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,由字符串参数表示。
- 参见:
- 如果一个数字前面有
-
getYear
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.YEAR) - 1900取代。返回一个值,该值是从包含或以此Date对象表示的即时时间开始的年份减去 1900 的结果,如在本地时区中解释的那样。- 返回:
- 此日期表示的年份减去 1900。
- 参见:
-
setYear
已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.YEAR, year + 1900)取代。将此Date对象的年份设置为指定值加1900。修改此Date对象,使其表示指定年份内的时间点,月、日、时、分、秒与之前相同,按照当地时区的解释。 (当然,如果日期是 2 月 29 日,并且年份设置为非闰年,那么新日期将被视为 3 月 1 日。)- 参数:
year- 年份值。- 参见:
-
getMonth
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.MONTH)取代。返回一个数字,表示包含此Date对象表示的即时时刻或以此即时开始的月份。返回值介于0和11之间,值0代表一月。- 返回:
- 此日期表示的月份。
- 参见:
-
setMonth
已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.MONTH, int month)取代。将此日期的月份设置为指定值。此Date对象已修改,以表示指定月份内的时间点,年、日、时、分和秒与以前相同,以本地时区解释。例如,如果日期是 10 月 31 日,而月份设置为 6 月,则新日期将被视为 7 月 1 日,因为 6 月只有 30 天。- 参数:
month- 0-11 之间的月份值。- 参见:
-
getDate
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.DAY_OF_MONTH)取代。返回此Date对象表示的月份中的第几天。返回的值介于1和31之间,表示包含或开始于此Date对象表示的即时时间的月份中的第几天,如在本地时区中解释的那样。- 返回:
- 此日期表示的月份中的第几天。
- 参见:
-
setDate
已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.DAY_OF_MONTH, int date)取代。将此Date对象的月份日期设置为指定值。此Date对象已修改,以表示该月指定日期内的时间点,年、月、时、分和秒与以前相同,以本地时区解释。例如,如果日期是 4 月 30 日,并且日期设置为 31,那么它将被视为 5 月 1 日,因为 4 月只有 30 天。- 参数:
date- 1-31 之间的月份值。- 参见:
-
getDay
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.DAY_OF_WEEK)取代。返回此日期表示的星期几。返回值(0= Sunday,1= Monday,2= Tuesday,3= Wednesday,4= Thursday,5= Friday,6= Saturday)表示一周中的第几天包含或开始于这个时刻Date对象,在当地时区解释。- 返回:
- 此日期表示的星期几。
- 参见:
-
getHours
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.HOUR_OF_DAY)取代。返回此Date对象表示的小时。返回值是一个数字(0到23),代表一天中的小时,该小时包含此Date对象表示的瞬间或以该瞬间开始,如在本地时区中解释的那样。- 返回:
- 此日期表示的小时。
- 参见:
-
setHours
已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.HOUR_OF_DAY, int hours)取代。将此Date对象的小时设置为指定值。此Date对象已修改,以表示一天中指定小时内的时间点,年、月、日、分和秒与以前相同,以本地时区解释。- 参数:
hours- 小时值。- 参见:
-
getMinutes
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.MINUTE)取代。返回此日期表示的小时后的分钟数,按当地时区解释。返回的值介于0和59之间。- 返回:
- 此日期表示的小时后的分钟数。
- 参见:
-
setMinutes
已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.MINUTE, int minutes)取代。将此Date对象的分钟设置为指定值。此Date对象已修改,以便它表示小时的指定分钟内的时间点,年、月、日、小时和秒与以前相同,如在本地时区中解释的那样。- 参数:
minutes- 分钟值。- 参见:
-
getSeconds
已弃用。从 JDK 1.1 版开始,由Calendar.get(Calendar.SECOND)取代。返回此日期表示的分钟后的秒数。返回的值介于0和61之间。值60和61只能出现在那些考虑闰秒的 Java 虚拟机上。- 返回:
- 此日期表示的分钟后的秒数。
- 参见:
-
setSeconds
已弃用。从 JDK 1.1 版开始,由Calendar.set(Calendar.SECOND, int seconds)取代。将此Date的秒数设置为指定值。此Date对象已修改,使其代表指定秒数内的时间点,年、月、日、小时和分钟与以前相同,以本地时区解释。- 参数:
seconds- 秒值。- 参见:
-
getTime
public long getTime()返回此Date对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。- 返回:
- 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,此日期表示。
-
setTime
public void setTime(long time) 设置此Date对象以表示格林威治标准时间 1970 年 1 月 1 日 00:00:00 后time毫秒的时间点。- 参数:
time- 毫秒数。
-
before
测试此日期是否早于指定日期。- 参数:
when- 约会对象。- 返回:
true当且仅当此Date对象表示的时刻严格早于when表示的时刻;false否则。- 抛出:
NullPointerException- 如果when为空。
-
after
测试此日期是否在指定日期之后。- 参数:
when- 约会对象。- 返回:
true当且仅当此Date对象表示的时刻严格晚于when表示的时刻;false否则。- 抛出:
NullPointerException- 如果when为空。
-
equals
比较两个日期是否相等。结果是true当且仅当参数不是null并且是一个Date对象表示相同的时间点,精确到毫秒,作为这个对象。因此,当且仅当
getTime方法为两者返回相同的long值时,两个Date对象才相等。 -
compareTo
比较两个日期以进行排序。- 指定者:
compareTo在接口Comparable<Date>中- 参数:
anotherDate- 要比较的Date。- 返回:
-
如果参数 Date 等于此 Date,则值为
0;如果此日期在日期参数之前,则小于0的值;如果此日期在日期参数之后,则值大于0。 - 抛出:
NullPointerException- 如果anotherDate为空。- 自从:
- 1.2
-
hashCode
public int hashCode()返回此对象的哈希码值。结果是getTime()方法返回的原始long值的两半的异或。也就是说,哈希码是表达式的值:(int)(this.getTime()^(this.getTime() >>> 32)) -
toString
将此Date对象转换为以下形式的String:
在哪里:dow mon dd hh:mm:ss zzz yyyy
dow是星期几 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。mon是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。dd是一个月中的第几天(01到31),以两位小数表示。hh是一天中的小时(00到23),为两位小数。mm是小时内的分钟数(00到59),为两位小数。ss是分钟内的秒数(00到61,两位小数。zzz是时区(可能反映夏令时)。标准时区缩写包括方法parse识别的缩写。如果时区信息不可用,则zzz为空 - 也就是说,它根本不包含任何字符。yyyy是年份,四位十进制数字。
-
toLocaleString
已弃用。从 JDK 1.1 版开始,由DateFormat.format(Date date)取代。以依赖于实现的形式创建此Date对象的字符串表示形式。这样做的目的是让 Java 应用程序的用户熟悉该表单,无论它在何处运行。其意图类似于 ISO C 的strftime()函数支持的“%c”格式。- 返回:
- 此日期的字符串表示形式,使用locale约定。
- 参见:
-
toGMTString
已弃用。从 JDK 1.1 版开始,由DateFormat.format(Date date)取代,使用 GMTTimeZone。创建此Date对象的字符串表示形式:
在哪里:d mon yyyy hh:mm:ss GMT
- d是一个月中的第几天(
1到31),作为一位或两位小数。 - 周一是月份 (
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。 - yyyy是年份,四位十进制数字。
- 嗯是一天中的小时(
00到23),以两位小数表示。 - 毫米是小时内的分钟数(
00到59),以两位小数表示。 - SS是分钟内的第二个(
00到61),作为两位小数。 - GMT正是ASCII字母“
GMT”来表示格林威治标准时间。
结果不依赖于本地时区。
- 返回:
- 此日期的字符串表示形式,使用 Internet GMT 约定。
- 参见:
- d是一个月中的第几天(
-
getTimezoneOffset
已弃用。从 JDK 1.1 版开始,由-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)取代。返回本地时区相对于适合此Date对象表示的时间的 UTC 的偏移量(以分钟为单位)。例如,在马萨诸塞州,格林威治以西五个时区:
因为在 1996 年 2 月 14 日,使用标准时间(东部标准时间),与 UTC 相差五个小时;但:new Date(96, 1, 14).getTimezoneOffset() returns 300
因为 1996 年 6 月 1 日开始使用夏令时(东部夏令时),与 UTC 仅相差四个小时。new Date(96, 5, 1).getTimezoneOffset() returns 240
此方法产生的结果与它计算的结果相同:
(this.getTime() - UTC(this.getYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds())) / (60 * 1000)- 返回:
- 当前时区的时区偏移量(以分钟为单位)。
- 参见:
-
from
从Instant对象获取Date的实例。Instant使用纳秒精度,而Date使用毫秒精度。转换将截断任何多余的精度信息,就好像以纳秒为单位的数量被整数除以一百万。Instant可以将时间线上的点存储在比Date更远的未来和更远的过去。在这种情况下,此方法将抛出异常。- 参数:
instant- 转换的瞬间- 返回:
Date表示时间线上与提供的时刻相同的点- 抛出:
NullPointerException- 如果instant为空。IllegalArgumentException- 如果瞬间太大而无法表示为Date- 自从:
- 1.8
-
toInstant
将此Date对象转换为Instant。转换创建一个
Instant代表时间线上与此Date相同的点。- 返回:
-
代表时间线上与此
Date对象相同的点的瞬间 - 自从:
- 1.8
-
Calendar.set(year + 1900, month, date)或GregorianCalendar(year + 1900, month, date)取代。