Module  java.base
软件包  java.util

Class Date

  • All Implemented Interfaces:
    SerializableCloneableComparable<Date>
    已知直接子类:
    DateTimeTimestamp


    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
    另请参见:
    DateFormatCalendarTimeZoneSerialized 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)替换,使用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对象,并初始化它,以便它代表它被分配的时间,测量到最接近的毫秒。
        另请参见:
        System.currentTimeMillis()
      • 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对象,并初始化它,这样它代表午夜,本地时间,在由指定的一天的开始 yearmonth ,并 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对象,并初始化它,这样它代表的由指定的分钟的开始瞬间 yearmonthdatehrs ,并 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对象,并初始化它,这样它代表的由指定的第二个开始的瞬间 yearmonthdatehrsmin ,并 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)替代。
        分配 Date对象并对其进行初始化,以便它表示由字符串 s指示的日期和时间,这被解释为 parse(java.lang.String)方法。
        参数
        s - 日期的字符串表示形式。
        另请参见:
        DateFormatparse(java.lang.String)
    • 方法详细信息

      • clone

        public Object clone​()
        返回此对象的副本。
        重写:
        cloneObject
        结果
        这个实例的一个克隆。
        另请参见:
        Cloneable
      • 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)替换,使用UTC TimeZone ,其次是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将意味着“格林威治以东四小时三十分钟”。 它允许字符串指定GMTUT ,或UTC冗余,例如, GMT-5utc+0430
        • 如果满足以下条件之一,则该数字被视为年数:
          • 数字等于或大于70,后跟空格,逗号,斜杠或字符串结尾
          • 这个数字不到70,这个月的一个月和一个月都已经被认可了
          如果确认的年数小于100,则被解释为相对于在Date类初始化之前的80年以前和19年之后的一个世纪的缩写年。 调整年数后,从其中减去1900。 例如,如果今年是1999年,那么19到99年的年份假定为1919年至1999年,而从0到18的年份假定为2000年至2018年。注意,这与年度解释略有不同小于100,用于SimpleDateFormat
        • 如果数字后面是一个冒号,它被认为是一个小时,除非一个小时已经被识别,在这种情况下,它被认为是一分钟。
        • 如果号码后面是斜杠,则视为一个月份(除以1,以产生011 ),除非已被确认为一个月,否则被视为一天的月份。
        • 如果数字后面是空格,逗号,连字符或字符串结尾,那么如果一小时已被识别但不是一分钟,则视为分钟; 否则,如果一分钟已被确认但不是第二次,则被视为第二个; 否则被视为一个月的一天。

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

        • 匹配AM (忽略大小写)的单词将被忽略(但如果小时尚未被识别或小于1或大于12 ,则解析失败)。
        • PM匹配的PM (忽略大小写)会在小时内添加12 (但如果一小时未识别或小于1或大于12则解析失败)。
        • 任何与任何前缀为SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAYSATURDAY匹配的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY忽略大小写都将被忽略。 例如, 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 ,无视情况,分别被认为是指北美时区,分别是格林威治以西五,六,七,八小时。 匹配EDT, CDT, MDTPDT (忽略大小写)的任何单词在夏令时分别被识别为指向相同的时区。

        一旦扫描了整个字符串,它将以两种方式之一转换为时间结果。 如果已经识别出时区或时区偏移量,则以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对象表示的时刻开始的月份的数字。 返回的值在011之间,值为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对象所代表的月份。 返回的值在131之间,代表本月的日期,包含或开始于此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 返回的值是一个数字( 023 ),代表一天内包含或以该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)替代。
        返回由当前时区解释的此日期所表示的小时数。 返回的值在059之间。
        结果
        由该日期表示的小时数。
        另请参见:
        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)替代。
        返回由此日期表示的分钟数。 返回的值在061之间。 6061只能在那些考虑到闰秒的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对象相等。

        重写:
        equalsObject
        参数
        obj - 要比较的对象。
        结果
        true如果对象是一样的; 否则为false
        另请参见:
        getTime()
      • 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
      • 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是空的 - 也就是说,它没有任何字符。
        • yyyyyyyy ,为四位十进制数字。
        重写:
        toStringObject
        结果
        此日期的字符串表示形式。
        另请参见:
        toLocaleString()toGMTString()
      • toLocaleString

        @Deprecated
        public String toLocaleString​()
        已过时。 从JDK 1.1版开始,替换为DateFormat.format(Date date)
        以实现依赖的形式创建此Date对象的字符串表示形式。 意图是,Java应用程序的用户应该熟悉该表单,无论它可能正在运行。 意图与ISO C的strftime()功能支持的“ %c ”格式strftime()
        结果
        此日期的字符串表示形式,使用区域设置约定。
        另请参见:
        DateFormattoString()toGMTString()
      • toGMTString

        @Deprecated
        public String toGMTString​()
        已过时。 从JDK 1.1版开始,用DateFormat.format(Date date)替换,使用GMT TimeZone
        创建此Date对象的字符串表示形式:
         d mon yyyy hh:mm:ss GMT
        哪里:
        • d是一个月的日期( 131 ),一个或两个十进制数字。
        • mon是月( 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

        @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
        因为1996年2月14日,标准时间(东部标准时间)正在使用,从UTC偏移了五个小时; 但:
         new Date(96, 5, 1).getTimezoneOffset() returns 240
        因为在1996年6月1日,夏令时间(Eastern Daylight Time)正在使用中,而UTC距离UTC只有四个小时。

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

         (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