模块  java.base
软件包  java.util

Class Date

  • 实现的所有接口
    SerializableCloneableComparable<Date>
    已知直接子类:
    DateTimeTimestamp

    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
    另请参见:
    DateFormatCalendarTimeZoneSerialized 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)取代,使用GMT TimeZone
      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)替换,使用UTC TimeZone ,然后是Calendar.getTime().getTime()
    • 构造方法详细信息

      • Date

        public Date()
        分配一个 Date对象并对其进行初始化,使其表示分配的时间,测量 Date到毫秒。
        另请参见:
        System.currentTimeMillis()
      • 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 by Calendar.set(year + 1900, month, date) or GregorianCalendar(year + 1900, month, date).
        分配一个 Date对象,并初始化它,这样它代表午夜,本地时间,在由指定的一天的开始 yearmonthdate参数。
        参数
        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 by Calendar.set(year + 1900, month, date, hrs, min) or GregorianCalendar(year + 1900, month, date, hrs, min).
        分配一个 Date对象,并初始化它,这样它代表的由指定的分钟的开始瞬间 yearmonthdatehrs ,并 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 by Calendar.set(year + 1900, month, date, hrs, min, sec) or GregorianCalendar(year + 1900, month, date, hrs, min, sec).
        分配一个 Date对象,并初始化它,这样它代表的由指定的第二个开始的瞬间 yearmonthdatehrsmin ,并 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 by DateFormat.parse(String s).
        分配 Date对象并对其进行初始化,使其表示由字符串 s指示的日期和时间,该字符串由 parse(java.lang.String)方法解释。
        参数
        s - 日期的字符串表示形式。
        另请参见:
        DateFormatparse(java.lang.String)
    • 方法详细信息

      • clone

        public Object clone()
        返回此对象的副本。
        重写:
        clone在类 Object
        结果
        这个实例的克隆。
        另请参见:
        Cloneable
      • 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 by Calendar.set(year + 1900, month, date, hrs, min, sec) or GregorianCalendar(year + 1900, month, date, hrs, min, sec), using a UTC TimeZone, followed by 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以来参数指定的日期和时间的毫秒数。
        另请参见:
        Calendar
      • parse

        @Deprecatedpublic static long parse​(String s)
        Deprecated.
        As of JDK version 1.1, replaced by DateFormat.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分钟”。 它允许字符串指定GMTUT ,或UTC冗余,例如, GMT-5utc+0430
        • 如果满足下列条件之一,则该数字被视为年份数字:
          • 该数字等于或大于70,后跟空格,逗号,斜杠或字符串结尾
          • 该数字小于70,并且已经识别出月份和月份
          如果公认的年份数小于100,则将其解释为相对于一个世纪的缩写年份,其中日期在Date类初始化之前的80年之前和19年之后。 调整年份数后,从中减去1900。 例如,如果当前年份为1999年,那么19至99范围内的年份假设为1919至1999年,而0至18年则假设为2000至2018年。请注意,这与年份的解释略有不同在SimpleDateFormat使用的不到100。
        • 如果数字后面跟冒号,则视为一小时,除非已经识别出一小时,在这种情况下它被视为一分钟。
        • 如果数字后跟斜线,则将其视为一个月(减少1以产生011范围内的11 ),除非已经确认了一个月,在这种情况下它被视为一天这个月。
        • 如果数字后跟空格,逗号,连字符或字符串结尾,那么如果一小时被识别但不是一分钟,那么它被视为一分钟; 否则,如果一分钟被识别但不是一分钟,则视为秒; 否则,它被视为一个月中的某一天。

        连续的字母序列被视为一个单词并按如下方式处理:

        • 忽略大小写与AM匹配的单词将被忽略(但如果未识别小时或小于1或大于12 ,则解析将失败)。
        • 匹配PM的单词,忽略大小写,将小时数添加12 (但如果一小时未被识别或小于1或大于12则解析失败)。
        • 任何匹配任何前缀SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAYSATURDAY (忽略大小写)的单词都将被忽略。 例如, sat, Friday, TUEThurs将被忽略。
        • 否则,任何匹配任何前缀JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBERDECEMBER ,忽略大小写,并按此处给出的顺序考虑它们,将被识别为指定月份并转换为数字( 011 )。 例如, aug, Sept, aprilNOV被识别为月份。 所以是Ma ,被认可为MARCH ,而不是MAY
        • 任何与GMT, UTUTC匹配的GMT, UT都会被视为指代UTC。
        • 任何与EST, CST, MSTPST相匹配的EST, CST, MST ,忽略大小写,都被认为是指北美时区格林威治以西五,六,七,八小时的时区。 在夏令时期间,任何与EDT, CDT, MDTPDT匹配的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 by Calendar.get(Calendar.YEAR) - 1900.
        返回一个值,该值是从包含或以此 Date对象表示的时刻开始的年份减去1900的结果,如本地时区中所解释的那样。
        结果
        这个日期所代表的年份,减去1900年。
        另请参见:
        Calendar
      • setYear

        @Deprecatedpublic void setYear​(int year)
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.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 by Calendar.get(Calendar.MONTH).
        返回一个数字,表示包含或以此Date对象表示的时刻开始的月份。 返回的值介于011之间,值为0表示1月。
        结果
        这个日期所代表的月份。
        另请参见:
        Calendar
      • setMonth

        @Deprecatedpublic void setMonth​(int month)
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.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 by Calendar.get(Calendar.DAY_OF_MONTH).
        返回此Date对象表示的Date 返回的值介于131之间,表示包含或以此Date对象表示的时刻开始的月份的日期,如本地时区中所解释的那样。
        结果
        此日期所代表的月份日期。
        另请参见:
        Calendar
      • setDate

        @Deprecatedpublic void setDate​(int date)
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.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 by Calendar.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 by Calendar.get(Calendar.HOUR_OF_DAY).
        返回此Date对象表示的小时。 返回值是一个数字( 023 ),表示当前包含或以此Date对象表示的时刻开始的时间,如本地时区中所解释的那样。
        结果
        这个日期所代表的时间。
        另请参见:
        Calendar
      • setHours

        @Deprecatedpublic void setHours​(int hours)
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.set(Calendar.HOUR_OF_DAY, int hours).
        将此Date对象的小时设置为指定值。 修改此Date对象,使其表示一天中指定小时内的某个时间点,其中年,月,日,分和秒与之前相同,如本地时区中所解释的那样。
        参数
        hours - 小时值。
        另请参见:
        Calendar
      • getMinutes

        @Deprecatedpublic int getMinutes()
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.get(Calendar.MINUTE).
        返回此日期所代表的小时数,以本地时区解释。 返回的值介于059之间。
        结果
        此日期所代表的小时数。
        另请参见:
        Calendar
      • setMinutes

        @Deprecatedpublic void setMinutes​(int minutes)
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.set(Calendar.MINUTE, int minutes).
        将此Date对象的分钟数设置为指定值。 修改此Date对象,以便它表示在小时的指定分钟内的时间点,其中年,月,日,小时和秒与之前相同,如在本地时区中解释的那样。
        参数
        minutes - 分钟数。
        另请参见:
        Calendar
      • getSeconds

        @Deprecatedpublic int getSeconds()
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.get(Calendar.SECOND).
        返回此日期表示的分钟数。 返回的值介于061之间。 6061只能在考虑到闰秒的Java虚拟机上发生。
        结果
        此日期所代表的分钟数。
        另请参见:
        Calendar
      • setSeconds

        @Deprecatedpublic void setSeconds​(int seconds)
        Deprecated.
        As of JDK version 1.1, replaced by Calendar.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对象相等。

        重写:
        equals在类 Object
        参数
        obj - 要与之比较的对象。
        结果
        true如果对象相同; 否则为false
        另请参见:
        getTime()
      • 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
      • 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是该月的第几天( 0131 ),以小数点后两位数。
        • hh是一天中的小时( 0023 ),以小数点后两位数。
        • mm是小时内的分钟( 0059 ),以小数点后两位数。
        • ss是分钟内的第二个( 0061 ,两位十进制数字。
        • zzz是时区(可能反映夏令时)。 标准时区缩写包括方法parse识别的缩写。 如果时区信息不可用,则zzz为空 - 也就是说,它根本不包含任何字符。
        • yyyy是年份,十四位数。
        重写:
        toStringObject
        结果
        此日期的字符串表示形式。
        另请参见:
        toLocaleString()toGMTString()
      • toLocaleString

        @Deprecatedpublic String toLocaleString()
        Deprecated.
        As of JDK version 1.1, replaced by DateFormat.format(Date date).
        以依赖于实现的形式创建此Date对象的字符串表示形式。 目的是Java应用程序的用户应该熟悉该表单,无论它在哪里运行。 其意图与ISO C的strftime()功能支持的“ %c ”格式strftime()
        结果
        使用区域设置约定的此日期的字符串表示形式。
        另请参见:
        DateFormattoString()toGMTString()
      • toGMTString

        @Deprecatedpublic String toGMTString()
        Deprecated.
        As of JDK version 1.1, replaced by DateFormat.format(Date date), using a GMT TimeZone.
        创建以下形式的Date对象的字符串表示形式:
         d mon yyyy hh:mm:ss GMT
        哪里:
        • d是一个月中的某一天( 131 ),作为一个或两个十进制数字。
        • 星期一是月( Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec )。
        • yyyy是年份,四位小数。
        • hh是一天中的小时( 0023 ),为两位小数。
        • mm是小时内的分钟( 0059 ),为两位小数。
        • ss是分钟内的第二个( 0061 ),为两位小数。
        • GMT正好是ASCII字母“ GMT ”,表示格林威治标准时间。

        结果不依赖于本地时区。

        结果
        使用Internet GMT约定的此日期的字符串表示形式。
        另请参见:
        DateFormattoString()toLocaleString()
      • 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
        因为在1996年2月14日,标准时间(东部标准时间)正在使用,与UTC相差5小时; 但:
         new Date(96, 5, 1).getTimezoneOffset() returns 240
        因为在1996年6月1日,正在使用夏令时(东部夏令时),这与UTC相差仅4小时。

        此方法产生与计算时相同的结果:

         (this.getTime() - UTC(this.getYear(),                       this.getMonth(),                       this.getDate(),                       this.getHours(),                       this.getMinutes(),                       this.getSeconds())) / (60 * 1000) 
        结果
        当前时区的时区偏移量(以分钟为单位)。
        另请参见:
        Calendar.ZONE_OFFSETCalendar.DST_OFFSETTimeZone.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