- java.lang.Object
-
- java.util.Date
-
- 实现的所有接口
-
Serializable
,Cloneable
,Comparable<Date>
public class Dateextends Objectimplements 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同步,但不会针对闰秒进行调整。 美国海军天文台(USNO)提供了一个有趣的进一步信息来源:
http://www.usno.navy.mil/USNO
以及关于“时间系统”的材料:
http://www.usno.navy.mil/USNO/time/master-clock/systems-of-time
它描述了各种不同的时间系统,包括UT,UT1和UTC。
在接受或返回年,月,日,小时,分钟和秒值的所有
Date
类方法中,使用以下表示:- 年y由整数y
- 1900
。 - 一个月由0到11的整数表示; 0是1月,1是2月,依此类推; 因此11月是12月。
- 日期(月中的某天)以通常的方式由1到31的整数表示。
- 小时由0到23之间的整数表示。因此,从午夜到凌晨1点的小时是小时0,从中午到下午1点的小时是小时12。
- 一分钟由通常方式的0到59的整数表示。
- 第二个由0到61的整数表示; 值60和61仅在闰秒发生,甚至仅在实际正确跟踪闰秒的Java实现中发生。 由于当前引入闰秒的方式,在同一分钟内发生两个闰秒的可能性极小,但此规范遵循ISO C的日期和时间约定。
在所有情况下,为这些目的提供方法的论据不必落在指定的范围内; 例如,日期可以指定为1月32日,并解释为2月1日。
- 从以下版本开始:
- 1.0
- 另请参见:
-
DateFormat
,Calendar
,TimeZone
, Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 Date()
分配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()
返回自此Date
对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。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之后的time
毫秒的时间点。void
setYear(int year)
已过时。截至JDK 1.1版,由Calendar.set(Calendar.YEAR, year + 1900)
取代。String
toGMTString()
已过时。截至JDK 1.1版,由DateFormat.format(Date date)
取代,使用GMTTimeZone
。Instant
toInstant()
将此Date
对象转换为Instant
。String
toLocaleString()
已过时。截至JDK 1.1版,由DateFormat.format(Date date)
取代。String
toString()
将此Date
对象转换为以下形式的String
: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)
替换,使用UTCTimeZone
,然后是Calendar.getTime().getTime()
。
-
-
-
构造方法详细信息
-
Date
public Date()
分配一个Date
对象并对其进行初始化,使其表示分配的时间,测量Date
到毫秒。
-
Date
public Date(long date)
分配Date
对象并将其初始化以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。- 参数
-
date
- 格林威治标准时间1970年1月1日00:00:00之后的毫秒数 - 另请参见:
-
System.currentTimeMillis()
-
Date
@Deprecatedpublic Date(int year, int month, int date)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(year + 1900, month, date)
orGregorianCalendar(year + 1900, month, date)
.分配一个Date
对象,并初始化它,这样它代表午夜,本地时间,在由指定的一天的开始year
,month
和date
参数。- 参数
-
year
- 减去1900年的年份。 -
month
- 0-11之间的月份。 -
date
- 1-31之间的当月日期。 - 另请参见:
-
Calendar
-
Date
@Deprecatedpublic Date(int year, int month, int date, int hrs, int min)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(year + 1900, month, date, hrs, min)
orGregorianCalendar(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之间的分钟。 - 另请参见:
-
Calendar
-
Date
@Deprecatedpublic Date(int year, int month, int date, int hrs, int min, int sec)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(year + 1900, month, date, hrs, min, sec)
orGregorianCalendar(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之间的秒数。 - 另请参见:
-
Calendar
-
Date
@Deprecatedpublic Date(String s)
Deprecated.As of JDK version 1.1, replaced byDateFormat.parse(String s)
.- 参数
-
s
- 日期的字符串表示形式。 - 另请参见:
-
DateFormat
,parse(java.lang.String)
-
-
方法详细信息
-
UTC
@Deprecatedpublic static long UTC(int year, int month, int date, int hrs, int min, int sec)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(year + 1900, month, date, hrs, min, sec)
orGregorianCalendar(year + 1900, month, date, hrs, min, sec)
, using a UTCTimeZone
, followed byCalendar.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以来参数指定的日期和时间的毫秒数。
- 另请参见:
-
Calendar
-
parse
@Deprecatedpublic static long parse(String s)
Deprecated.As of JDK version 1.1, replaced byDateFormat.parse(String s)
.尝试将字符串s
解释为日期和时间的表示。 如果尝试成功,则返回指示的时间,表示为距离时期(1970年1月1日格林威治标准时间00:00:00)的该时间的距离(以毫秒为单位)。 如果尝试失败,则抛出IllegalArgumentException
。它接受许多语法; 特别是,它承认IETF标准日期语法:“星期六,1995年8月12日格林尼治标准时间13:30:00”。 它也理解美国大陆时区的缩写,但是对于一般用途,应该使用时区偏移:“星期六,1995年8月12日13:30:00 GMT + 0430”(格林威治以西4小时30分钟)子午线)。 如果未指定时区,则假定为本地时区。 GMT和UTC被认为是等效的。
s
处理字符串s
,查找感兴趣的数据。s
中位于ASCII括号内的字符(
和)
任何材料都将被忽略。 括号可以嵌套。 否则,s
中允许的唯一字符是这些ASCII字符:abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789,+-:/
连续的十进制数字序列被视为十进制数字:
- 如果数字前面有
+
或-
并且已经识别了一年,则该数字是时区偏移量。 如果数字小于24,则以小时为单位测量偏移量。 否则,它被视为以分钟为单位的偏移量,以24小时时间格式表示,没有标点符号。 前面的-
表示向西偏移。 时区偏移始终相对于UTC(格林威治)。 因此,例如,-5
出现的-5
表示“格林威治以西5小时”,+0430
表示“格林威治以东4小时30分钟”。 它允许字符串指定GMT
,UT
,或UTC
冗余,例如,GMT-5
或utc+0430
。 - 如果满足下列条件之一,则该数字被视为年份数字:
- 该数字等于或大于70,后跟空格,逗号,斜杠或字符串结尾
- 该数字小于70,并且已经识别出月份和月份
SimpleDateFormat
中使用的不到100。 - 如果数字后面跟冒号,则视为一小时,除非已经识别出一小时,在这种情况下它被视为一分钟。
- 如果数字后跟斜线,则将其视为一个月(减少1以产生
0
至11
范围内的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
匹配的GMT, UT
都会被视为指代UTC。 - 任何与
EST, CST, MST
或PST
相匹配的EST, CST, MST
,忽略大小写,都被认为是指北美时区格林威治以西五,六,七,八小时的时区。 在夏令时期间,任何与EDT, CDT, MDT
或PDT
匹配的EDT, CDT, MDT
(忽略大小写)将被识别为分别指向同一时区。
扫描完整个字符串后,它将以两种方式之一转换为时间结果。 如果已识别时区或时区偏移,则以UTC为单位解释年,月,日,小时,分钟和秒,然后应用时区偏移。 否则,在本地时区中解释年,月,日,小时,分钟和秒。
- 参数
-
s
- 要解析为日期的字符串。 - 结果
- 自1970年1月1日00:00:00 GMT以来的字符串参数表示的毫秒数。
- 另请参见:
-
DateFormat
- 如果数字前面有
-
getYear
@Deprecatedpublic int getYear()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.YEAR) - 1900
.返回一个值,该值是从包含或以此Date
对象表示的时刻开始的年份减去1900的结果,如本地时区中所解释的那样。- 结果
- 这个日期所代表的年份,减去1900年。
- 另请参见:
-
Calendar
-
setYear
@Deprecatedpublic void setYear(int year)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.YEAR, year + 1900)
.将此Date
对象的年份设置为指定值加上1900.修改此Date
对象,使其表示指定年份内的某个时间点,月,日,时,分和秒与之前相同,在当地时区解释。 (当然,如果日期是2月29日,并且年份设置为非闰年,那么新日期将被视为3月1日。)- 参数
-
year
- 年份值。 - 另请参见:
-
Calendar
-
getMonth
@Deprecatedpublic int getMonth()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.MONTH)
.返回一个数字,表示包含或以此Date
对象表示的时刻开始的月份。 返回的值介于0
和11
之间,值为0
表示1月。- 结果
- 这个日期所代表的月份。
- 另请参见:
-
Calendar
-
setMonth
@Deprecatedpublic void setMonth(int month)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.MONTH, int month)
.将此日期的月份设置为指定的值。 修改此Date
对象,使其表示指定月份内的某个时间点,其中年,日,小时,分钟和秒与之前相同,如本地时区中所解释的那样。 例如,如果日期是10月31日,并且月份设置为6月,则新日期将被视为7月1日,因为6月只有30天。- 参数
-
month
- 0-11之间的月份值。 - 另请参见:
-
Calendar
-
getDate
@Deprecatedpublic int getDate()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.DAY_OF_MONTH)
.返回此Date
对象表示的Date
。 返回的值介于1
和31
之间,表示包含或以此Date
对象表示的时刻开始的月份的日期,如本地时区中所解释的那样。- 结果
- 此日期所代表的月份日期。
- 另请参见:
-
Calendar
-
setDate
@Deprecatedpublic void setDate(int date)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.DAY_OF_MONTH, int date)
.将此Date
对象的月份日期设置为指定的值。 修改此Date
对象,使其表示该月指定日期内的某个时间点,其中年,月,小时,分钟和秒与之前相同,如本地时区中所解释的那样。 例如,如果日期是4月30日,并且日期设置为31,那么它将被视为5月1日,因为4月只有30天。- 参数
-
date
- 1-31之间的月份日期值。 - 另请参见:
-
Calendar
-
getDay
@Deprecatedpublic int getDay()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.DAY_OF_WEEK)
.返回此日期表示的星期几。 返回值(0
=星期日,1
=星期一,2
=星期二,3
=星期三,4
=星期四,5
=星期五,6
=星期六)表示包含或以此时间表示的时刻开始的星期几Date
对象,在本地时区中解释。- 结果
- 这个日期所代表的星期几。
- 另请参见:
-
Calendar
-
getHours
@Deprecatedpublic int getHours()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.HOUR_OF_DAY)
.返回此Date
对象表示的小时。 返回值是一个数字(0
到23
),表示当前包含或以此Date
对象表示的时刻开始的时间,如本地时区中所解释的那样。- 结果
- 这个日期所代表的时间。
- 另请参见:
-
Calendar
-
setHours
@Deprecatedpublic void setHours(int hours)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.HOUR_OF_DAY, int hours)
.将此Date
对象的小时设置为指定值。 修改此Date
对象,使其表示一天中指定小时内的某个时间点,其中年,月,日,分和秒与之前相同,如本地时区中所解释的那样。- 参数
-
hours
- 小时值。 - 另请参见:
-
Calendar
-
getMinutes
@Deprecatedpublic int getMinutes()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.MINUTE)
.返回此日期所代表的小时数,以本地时区解释。 返回的值介于0
和59
之间。- 结果
- 此日期所代表的小时数。
- 另请参见:
-
Calendar
-
setMinutes
@Deprecatedpublic void setMinutes(int minutes)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.MINUTE, int minutes)
.将此Date
对象的分钟数设置为指定值。 修改此Date
对象,以便它表示在小时的指定分钟内的时间点,其中年,月,日,小时和秒与之前相同,如在本地时区中解释的那样。- 参数
-
minutes
- 分钟数。 - 另请参见:
-
Calendar
-
getSeconds
@Deprecatedpublic int getSeconds()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.SECOND)
.返回此日期表示的分钟数。 返回的值介于0
和61
之间。 值60
和61
只能在考虑到闰秒的Java虚拟机上发生。- 结果
- 此日期所代表的分钟数。
- 另请参见:
-
Calendar
-
setSeconds
@Deprecatedpublic void setSeconds(int seconds)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.SECOND, int seconds)
.将此Date
的秒数设置为指定值。 修改此Date
对象,使其表示指定的分钟内的某个时间点,其中年,月,日,小时和分钟与之前相同,如本地时区中所解释的那样。- 参数
-
seconds
- 秒值。 - 另请参见:
-
Calendar
-
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
public boolean before(Date when)
测试此日期是否在指定日期之前。- 参数
-
when
- 约会。 - 结果
-
true
当且仅当此Date
对象所代表的时刻严格早于when
代表的when
;false
否则。 - 异常
-
NullPointerException
- 如果when
为空。
-
after
public boolean after(Date when)
测试此日期是否在指定日期之后。- 参数
-
when
- 约会。 - 结果
-
true
当且仅当此Date
对象所代表的时刻严格晚于when
代表的when
; 否则为false
。 - 异常
-
NullPointerException
- 如果when
为空。
-
equals
public boolean equals(Object obj)
比较两个相等的日期。 当且仅当参数不是null
并且是Date
对象时,结果为true
,该对象表示与此对象相同的时间点,以毫秒为单位。因此,当且仅当
getTime
方法为两者返回相同的long
值时,两个Date
对象相等。
-
compareTo
public int compareTo(Date anotherDate)
比较两个日期的订购。- Specified by:
-
compareTo
在界面Comparable<Date>
- 参数
-
anotherDate
- 待比较的Date
。 - 结果
- 如果参数Date等于此Date,则值为
0
; 如果此Date在Date参数之前,则小于0
的值; 如果此Date位于Date参数之后,则值大于0
。 - 异常
-
NullPointerException
- 如果anotherDate
为空。 - 从以下版本开始:
- 1.2
-
hashCode
public int hashCode()
返回此对象的哈希码值。 结果是getTime()
方法返回的原始long
值的两半的异或。 也就是说,哈希码是表达式的值:(int)(this.getTime()^(this.getTime() >>> 32))
- 重写:
-
hashCode
在类Object
- 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String 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
是年份,十四位数。
- 重写:
-
toString
类Object
- 结果
- 此日期的字符串表示形式。
- 另请参见:
-
toLocaleString()
,toGMTString()
-
-
toLocaleString
@Deprecatedpublic String toLocaleString()
Deprecated.As of JDK version 1.1, replaced byDateFormat.format(Date date)
.以依赖于实现的形式创建此Date
对象的字符串表示形式。 目的是Java应用程序的用户应该熟悉该表单,无论它在哪里运行。 其意图与ISO C的strftime()
功能支持的“%c
”格式strftime()
。- 结果
- 使用区域设置约定的此日期的字符串表示形式。
- 另请参见:
-
DateFormat
,toString()
,toGMTString()
-
toGMTString
@Deprecatedpublic String toGMTString()
Deprecated.As of JDK version 1.1, replaced byDateFormat.format(Date date)
, using a 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是年份,四位小数。
- hh是一天中的小时(
00
到23
),为两位小数。 - mm是小时内的分钟(
00
到59
),为两位小数。 - ss是分钟内的第二个(
00
到61
),为两位小数。 - GMT正好是ASCII字母“
GMT
”,表示格林威治标准时间。
结果不依赖于本地时区。
- 结果
- 使用Internet GMT约定的此日期的字符串表示形式。
- 另请参见:
-
DateFormat
,toString()
,toLocaleString()
- d是一个月中的某一天(
-
getTimezoneOffset
@Deprecatedpublic int getTimezoneOffset()
Deprecated.As of JDK version 1.1, replaced by-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)
.返回相对于UTC的本地时区的偏移量(以分钟为单位),该偏移量适用于此Date
对象表示的时间。例如,在马萨诸塞州格林威治以西的五个时区:
new Date(96, 1, 14).getTimezoneOffset() returns 300
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)
- 结果
- 当前时区的时区偏移量(以分钟为单位)。
- 另请参见:
-
Calendar.ZONE_OFFSET
,Calendar.DST_OFFSET
,TimeZone.getDefault()
-
from
public static Date from(Instant instant)
从Instant
对象获得Date
的实例。Instant
使用的精度为纳秒,而Date
使用的精度为毫秒。 转换将截断任何多余的精度信息,就好像以纳秒为单位的整数除以一百万。Instant
可以在未来的时间线上存储积分,并且比Date
。 在这种情况下,此方法将引发异常。- 参数
-
instant
- 转换的瞬间 - 结果
-
Date
表示时间线上与提供的瞬间相同的点 - 异常
-
NullPointerException
- 如果instant
为空。 -
IllegalArgumentException
- 如果瞬间太大而无法表示为Date
- 从以下版本开始:
- 1.8
-
toInstant
public Instant toInstant()
将此Date
对象转换为Instant
。转换创建一个
Instant
,表示时间线上的相同点,如Date
。- 结果
- 表示时间线上与此
Date
对象相同的点的瞬间 - 从以下版本开始:
- 1.8
-
-