- java.lang.Object
-
- java.util.Date
-
- 实现的所有接口
-
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类旨在反映协调世界时(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)取代。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 booleanafter(Date when)测试此日期是否在指定日期之后。booleanbefore(Date when)测试此日期是否在指定日期之前。Objectclone()返回此对象的副本。intcompareTo(Date anotherDate)比较两个日期的订购。booleanequals(Object obj)比较两个相等的日期。static Datefrom(Instant instant)从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)取代。intgetMinutes()已过时。截至JDK 1.1版,由Calendar.get(Calendar.MINUTE)取代。intgetMonth()已过时。截至JDK 1.1版,由Calendar.get(Calendar.MONTH)取代。intgetSeconds()已过时。截至JDK 1.1版,由Calendar.get(Calendar.SECOND)取代。longgetTime()返回自此Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。intgetTimezoneOffset()已过时。截至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 longparse(String s)已过时。截至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)取代。StringtoGMTString()已过时。截至JDK 1.1版,由DateFormat.format(Date date)取代,使用GMTTimeZone。InstanttoInstant()将此Date对象转换为Instant。StringtoLocaleString()已过时。截至JDK 1.1版,由DateFormat.format(Date date)取代。StringtoString()将此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到毫秒。
-
Date
public Date(long date)
分配Date对象并将其初始化以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。- 参数
-
date- 格林威治标准时间1970年1月1日00:00:00之后的毫秒数 - 另请参见:
-
System.currentTimeMillis()
-
Date
@Deprecated public 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
@Deprecated public 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
@Deprecated public 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
@Deprecated public Date(String s)
Deprecated.As of JDK version 1.1, replaced byDateFormat.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)
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
@Deprecated public 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
@Deprecated public int getYear()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.YEAR) - 1900.返回一个值,该值是从包含或以此Date对象表示的时刻开始的年份减去1900的结果,如本地时区中所解释的那样。- 结果
- 这个日期所代表的年份,减去1900年。
- 另请参见:
-
Calendar
-
setYear
@Deprecated public 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
@Deprecated public int getMonth()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.MONTH).返回一个数字,表示包含或以此Date对象表示的时刻开始的月份。 返回的值介于0和11之间,值为0表示1月。- 结果
- 这个日期所代表的月份。
- 另请参见:
-
Calendar
-
setMonth
@Deprecated public 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
@Deprecated public int getDate()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.DAY_OF_MONTH).返回此Date对象表示的Date。 返回的值介于1和31之间,表示包含或以此Date对象表示的时刻开始的月份的日期,如本地时区中所解释的那样。- 结果
- 此日期所代表的月份日期。
- 另请参见:
-
Calendar
-
setDate
@Deprecated public 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
@Deprecated public 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
@Deprecated public int getHours()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.HOUR_OF_DAY).返回此Date对象表示的小时。 返回值是一个数字(0到23),表示当前包含或以此Date对象表示的时刻开始的时间,如本地时区中所解释的那样。- 结果
- 这个日期所代表的时间。
- 另请参见:
-
Calendar
-
setHours
@Deprecated public 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
@Deprecated public int getMinutes()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.MINUTE).返回此日期所代表的小时数,以本地时区解释。 返回的值介于0和59之间。- 结果
- 此日期所代表的小时数。
- 另请参见:
-
Calendar
-
setMinutes
@Deprecated public void setMinutes(int minutes)
Deprecated.As of JDK version 1.1, replaced byCalendar.set(Calendar.MINUTE, int minutes).将此Date对象的分钟数设置为指定值。 修改此Date对象,以便它表示在小时的指定分钟内的时间点,其中年,月,日,小时和秒与之前相同,如在本地时区中解释的那样。- 参数
-
minutes- 分钟数。 - 另请参见:
-
Calendar
-
getSeconds
@Deprecated public int getSeconds()
Deprecated.As of JDK version 1.1, replaced byCalendar.get(Calendar.SECOND).返回此日期表示的分钟数。 返回的值介于0和61之间。 值60和61只能在考虑到闰秒的Java虚拟机上发生。- 结果
- 此日期所代表的分钟数。
- 另请参见:
-
Calendar
-
setSeconds
@Deprecated public 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
@Deprecated public 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
@Deprecated public 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
@Deprecated public 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对象表示的时间。例如,在马萨诸塞州格林威治以西的五个时区:
因为在1996年2月14日,标准时间(东部标准时间)正在使用,与UTC相差5小时; 但:new Date(96, 1, 14).getTimezoneOffset() returns 300
因为在1996年6月1日,正在使用夏令时(东部夏令时),这与UTC相差仅4小时。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
-
-