- java.lang.Object
-
- java.util.Date
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Comparable<Date>
public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
Date
类代表了一个特定的时间,以毫秒的精度。在JDK 1.1之前,
Date
有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和第二个值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始,Calendar
类应用于在日期和时间字段之间进行转换,而DateFormat
类应用于格式化和解析日期字符串。Date
中的相应方法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中,以使UT在UT1的0.9秒内保持UTC,这是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
-
-
构造方法摘要
构造方法 Constructor 描述 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)
。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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日以来,由Date
对象表示的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 GMT后的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
public Date(long date)
分配一个Date
对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定毫秒数。- 参数
-
date
- 1970年1月1日00:00:00 GMT以来的毫秒数。 - 另请参见:
-
System.currentTimeMillis()
-
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
,month
,并date
参数。- 参数
-
year
- 年减1900。 -
month
- 0-11之间的月份。 -
date
- 这个月的日子在1-31之间。 - 另请参见:
-
Calendar
-
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
,month
,date
,hrs
,并min
参数,在本地时区。- 参数
-
year
- 年减1900。 -
month
- 0-11之间的月份。 -
date
- 1-31之间的月份。 -
hrs
- 0-23之间的时间。 -
min
- 0-59之间的分钟。 - 另请参见:
-
Calendar
-
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
,month
,date
,hrs
,min
,并sec
参数,在本地时区。- 参数
-
year
- 年减1900。 -
month
- 0-11之间的月份。 -
date
- 1月31日之间的月份。 -
hrs
- 0-23之间的时间。 -
min
- 0-59之间的分钟。 -
sec
- 0-59之间的秒数。 - 另请参见:
-
Calendar
-
Date
@Deprecated public Date(String s)
已过时。 从JDK 1.1版开始,由DateFormat.parse(String s)
替代。- 参数
-
s
- 日期的字符串表示形式。 - 另请参见:
-
DateFormat
,parse(java.lang.String)
-
-
方法详细信息
-
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)
替换,使用UTCTimeZone
,其次是Calendar.getTime().getTime()
。根据参数确定日期和时间。 参数被解释为一年,一个月,一天中的一天,一小时内的分钟,一分钟内的Date
与具有六个参数的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
@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”。 它也了解美国大陆时区缩写,但对于一般使用,应使用时区偏移:“星期六,1995年8月12日13:30:00 GMT + 0430”(格林威治以西30分钟子午线)。 如果未指定时区,则假定为本地时区。 GMT和UTC被认为是等效的。
字符串
s
处理,寻找感兴趣的数据。 任何s
内的任何材料,在ASCII括号内的字符(
和)
都将被忽略。 括号可以嵌套。 否则,s
中允许的唯一字符是这些ASCII字符:abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789,+-:/
十进制数字的连续序列被视为十进制数:
- 如果一个数字前面有
+
或-
,一年已经被识别,则该数字是时区偏移量。 如果数字小于24,则以小时计算。 否则,它被视为以分钟为单位的偏移量,以24小时格式表示,没有标点符号。 前面的一个-
表示向西偏移。 时区偏移总是相对于UTC(格林威治)。 因此,例如,-5
出现的-5
意味着“格林威治以西五小时”,而+0430
将意味着“格林威治以东四小时三十分钟”。 它允许字符串指定GMT
,UT
,或UTC
冗余,例如,GMT-5
或utc+0430
。 - 如果满足以下条件之一,则该数字被视为年数:
- 数字等于或大于70,后跟空格,逗号,斜杠或字符串结尾
- 这个数字不到70,这个月的一个月和一个月都已经被认可了
SimpleDateFormat
。 - 如果数字后面是一个冒号,它被认为是一个小时,除非一个小时已经被识别,在这种情况下,它被认为是一分钟。
- 如果号码后面是斜杠,则视为一个月份(除以1,以产生
0
到11
),除非已被确认为一个月,否则被视为一天的月份。 - 如果数字后面是空格,逗号,连字符或字符串结尾,那么如果一小时已被识别但不是一分钟,则视为分钟; 否则,如果一分钟已被确认但不是第二次,则被视为第二个; 否则被视为一个月的一天。
连续的字母序列被视为一个单词,并处理如下:
- 匹配
AM
(忽略大小写)的单词将被忽略(但如果小时尚未被识别或小于1
或大于12
,则解析失败)。 - 与
PM
匹配的PM
(忽略大小写)会在小时内添加12
(但如果一小时未识别或小于1
或大于12
则解析失败)。 - 任何与任何前缀为
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY
或SATURDAY
匹配的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY
忽略大小写都将被忽略。 例如,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
,无视情况,分别被认为是指北美时区,分别是格林威治以西五,六,七,八小时。 匹配EDT, CDT, MDT
或PDT
(忽略大小写)的任何单词在夏令时分别被识别为指向相同的时区。
一旦扫描了整个字符串,它将以两种方式之一转换为时间结果。 如果已经识别出时区或时区偏移量,则以UTC为单位解释年,月,日,月,时,分和秒,然后应用时区偏移。 否则,在本地时区解释年,月,日,时,分,秒。
- 参数
-
s
- 要解析为日期的字符串。 - 结果
- 从1970年1月1日00:00:00 GMT以字符串参数表示的毫秒数。
- 另请参见:
-
DateFormat
- 如果一个数字前面有
-
getYear
@Deprecated public int getYear()
已过时。 从JDK 1.1版开始,代之以Calendar.get(Calendar.YEAR) - 1900
。返回一个值,该值是从包含或以该Date
对象表示的时刻开始的年份减去1900,如本地时区所解释的那样。- 结果
- 这个日期代表的年份,减去1900年。
- 另请参见:
-
Calendar
-
setYear
@Deprecated public void setYear(int year)
已过时。 从JDK 1.1版开始,替换为Calendar.set(Calendar.YEAR, year + 1900)
。将此Date
对象的年份设置为指定值加上1900.该Date
对象进行修改,以便它表示指定年份内的时间点,月,日,小时,分钟和秒与之前相同,如当地时区所解释。 (当然,如果日期是例如2月29日,而这一年是非闰年,则新日期将被视为是在3月1日。)- 参数
-
year
- 年值。 - 另请参见:
-
Calendar
-
getMonth
@Deprecated public int getMonth()
已过时。 从JDK 1.1版开始,由Calendar.get(Calendar.MONTH)
替代。返回表示包含或以该Date
对象表示的时刻开始的月份的数字。 返回的值在0
和11
之间,值为0
代表一月。- 结果
- 该日期的代表月份。
- 另请参见:
-
Calendar
-
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之间的月份值。 - 另请参见:
-
Calendar
-
getDate
@Deprecated public int getDate()
已过时。 从JDK 1.1版开始,由Calendar.get(Calendar.DAY_OF_MONTH)
替换。返回此Date
对象所代表的月份。 返回的值在1
和31
之间,代表本月的日期,包含或开始于此Date
对象表示的时间,如本地时区所解释的。- 结果
- 这个日期的一个月的日子。
- 另请参见:
-
Calendar
-
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之间。 - 另请参见:
-
Calendar
-
getDay
@Deprecated public int getDay()
已过时。 从JDK 1.1版开始,替换为Calendar.get(Calendar.DAY_OF_WEEK)
。返回由此日期表示的星期几。 返回的值(0
=星期日,1
=星期二,2
=星期二,3
=星期三,4
=星期二,5
=星期五,6
=星期六)表示包含或以此时间表示的时刻开始的星期几Date
对象,如当地时区所解释。- 结果
- 这个日期的星期几。
- 另请参见:
-
Calendar
-
getHours
@Deprecated public int getHours()
已过时。 从JDK 1.1版开始,由Calendar.get(Calendar.HOUR_OF_DAY)
替代。返回此Date
对象所表示的小时Date
。 返回的值是一个数字(0
至23
),代表一天内包含或以该Date
对象表示的时刻开始的时间,如本地时区所解释的。- 结果
- 这个日期代表的时间。
- 另请参见:
-
Calendar
-
setHours
@Deprecated public void setHours(int hours)
已过时。 从JDK 1.1版开始,由Calendar.set(Calendar.HOUR_OF_DAY, int hours)
替代。将此Date
对象的小时设置为指定的值。 这个Date
对象被修改,以便它表示一天中指定的小时内的时间点,年份,月份,日期,分钟和秒与之前相同,如本地时区所解释的。- 参数
-
hours
- 小时值。 - 另请参见:
-
Calendar
-
getMinutes
@Deprecated public int getMinutes()
已过时。 从JDK 1.1版开始,由Calendar.get(Calendar.MINUTE)
替代。返回由当前时区解释的此日期所表示的小时数。 返回的值在0
和59
之间。- 结果
- 由该日期表示的小时数。
- 另请参见:
-
Calendar
-
setMinutes
@Deprecated public void setMinutes(int minutes)
已过时。 从JDK 1.1版开始,由Calendar.set(Calendar.MINUTE, int minutes)
替代。将此Date
对象的分钟数设置为指定的值。 该Date
对象被修改,以便它表示在本地时区解释的指定分钟内的时间点内的年份,月份,日期,时间和秒与之前相同的时间点。- 参数
-
minutes
- 分钟的值。 - 另请参见:
-
Calendar
-
getSeconds
@Deprecated public int getSeconds()
已过时。 从JDK 1.1版开始,由Calendar.get(Calendar.SECOND)
替代。返回由此日期表示的分钟数。 返回的值在0
和61
之间。 值60
和61
只能在那些考虑到闰秒的Java虚拟机上发生。- 结果
- 由此日期表示的分钟秒数。
- 另请参见:
-
Calendar
-
setSeconds
@Deprecated public void setSeconds(int seconds)
已过时。 从JDK 1.1版开始,由Calendar.set(Calendar.SECOND, int seconds)
替代。将此Date
的秒数设置为指定值。 该Date
对象被修改,以便它表示在分钟的指定秒钟内的时间点,年份,月份,日期,小时和分钟与之前相同,如当地时区所解释的。- 参数
-
seconds
- 秒值。 - 另请参见:
-
Calendar
-
getTime
public long getTime()
返回自1970年1月1日以来,由Date
对象表示的00:00:00 GMT的毫秒数。- 结果
- 自1970年1月1日起,以此日期为准的00:00:00 GMT的毫秒数。
-
setTime
public void setTime(long time)
设置此Date
对象以表示1970年1月1日00:00:00 GMT之后的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)
比较两个日期来平等。 结果是true
当且仅当参数不是null
并且是一个Date
对象,表示与该对象相同的时间点(毫秒)。因此,当且仅当
getTime
方法返回相同的long
值时,两个Date
对象相等。
-
compareTo
public int compareTo(Date anotherDate)
比较两个日期进行订购。- Specified by:
-
compareTo
在接口Comparable<Date>
- 参数
-
anotherDate
- 要比较的Date
。 - 结果
-
值为
0
如果参数Date等于此Date; 如果此日期在Date参数之前,该值小于0
; 如果此日期在Date参数0
则值大于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
为yyyy
,为四位十进制数字。
- 重写:
-
toString
在Object
- 结果
- 此日期的字符串表示形式。
- 另请参见:
-
toLocaleString()
,toGMTString()
-
-
toLocaleString
@Deprecated public String toLocaleString()
已过时。 从JDK 1.1版开始,替换为DateFormat.format(Date date)
。以实现依赖的形式创建此Date
对象的字符串表示形式。 意图是,Java应用程序的用户应该熟悉该表单,无论它可能正在运行。 意图与ISO C的strftime()
功能支持的“%c
”格式strftime()
。- 结果
- 此日期的字符串表示形式,使用区域设置约定。
- 另请参见:
-
DateFormat
,toString()
,toGMTString()
-
toGMTString
@Deprecated public String toGMTString()
已过时。 从JDK 1.1版开始,用DateFormat.format(Date date)
替换,使用GMTTimeZone
。创建此Date
对象的字符串表示形式:d mon yyyy hh:mm:ss GMT
- d是一个月的日期(
1
到31
),一个或两个十进制数字。 - mon是月(
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
@Deprecated public int getTimezoneOffset()
已过时。 从JDK 1.1版开始,由-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)
替代。返回适用于由此Date
对象表示的时间的本地时区相对于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
-
-