java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util
类 Date

java.lang.Object
  继承者 java.util.Date
所有已实现的接口:
Serializable, Cloneable, Comparable<Date>
直接已知子类:
Date, Time, Timestamp

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 同步,但没有 针对闰秒进行调整。有关更多信息的一个有趣来源是美国海军天文台,特别是 Directorate of Time 的网址:

     http://tycho.usno.navy.mil
 

还有它们对 "Systems of Time" 的定义,网址为:

     http://tycho.usno.navy.mil/systime.html
 

在类 Date 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:

  • 年份 y 由整数 y - 1900 表示。
  • 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
  • 日期(一月中的某天)按通常方式由整数 1 至 31 表示。
  • 小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。
  • 分钟按通常方式由 0 至 59 的整数表示。
  • 秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。

在所有情形中,针对这些目的赋予方法的参数不需要在指定的范围内;例如,可以把日期指定为 1 月 32 日,并把它解释为 2 月 1 日的相同含义。

从以下版本开始:
JDK1.0
另请参见:
DateFormat, Calendar, TimeZone, 序列化表格

构造方法摘要
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 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 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)
          比较两个日期的相等性。
 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 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
 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
 String toLocaleString()
          已过时。 从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代。
 String toString()
          把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
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()
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Date

public Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

另请参见:
System.currentTimeMillis()

Date

public Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 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 对象并初始化此对象,以表示由 yearmonthdate 参数指定的一天的开始时间(本地时间晚上 12 时)。

参数:
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 对象并初始化此对象,以表示本地时区中由 yearmonthdatehrsmin 参数指定的分钟的开始瞬间。

参数:
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 对象,并初始化此对象,以表示本地时区中由 yearmonthdatehrsminsec 参数指定的秒的开始瞬间。

参数:
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 - 日期的字符串表示形式。
另请参见:
DateFormat, parse(java.lang.String)
方法详细信息

clone

public Object clone()
返回此对象的副本。

覆盖:
Object 中的 clone
返回:
此实例的一个克隆。
另请参见:
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()

根据参数确定日期和时间。这些参数被解释为年份、月份、月中某一天、一天中的某一小时、小时中某一分钟和分钟中的某一秒。除了相对于 UTC 而不是本地时区解释这些参数之外,该方法与带 6 个参数的 Date 构造方法完全相同。该方法将返回指示的时间,用该时间与历元(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"。它也了解美国大陆时区缩写,但对于一般用途,应该使用时区偏移量:"Sat, 12 Aug 1995 13:30:00 GMT+0430"(比格林威治子午线晚 4 小时 30 分)。如果没有指定时区,则假定用本地时区。GMT 和 UTC 被认为是相同的。

系统将从左到右处理字符串 s,从中查找相应的数据。s 中包括在 ASCII 括号字符 () 中的任何内容都将被忽略。括号可以进行嵌套。另外,s 中只允许使用以下 ASCII 字符:

 abcdefghijklmnopqrstuvwxyz
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 0123456789,+-:/
以及空白字符。

连续的十进制位序列被当成十进制数:

  • 如果数字前面有 +-,并且已经识别了年份,那么数字就是一个时区偏移量。如果数字少于 24,那么它是以小时进行测量的偏移量。否则,它被认为是以分钟进行测量的偏移量,用没有标点的 24 小时时间格式来表示。前面的 - 意味着向西的偏移量。时区偏移量始终相对于 UTC(格林威治)。因此,例如,在字符串中出现的 -5 意味着“比格林威治时间晚 5 小时”,+0430 将意味着“比格林威治时间早 4 小时 30 分”。允许字符串冗余地指定 GMTUTUTC——例如,GMT-5utc+0430
  • 如果下面条件之一为真,数字就被认为是年数:
    • 数字等于或大于 70,并且后跟一个空格、逗号、斜杠或结束字符串
    • 数字小于 70,并且已经识别月份和月中的某一天
    如果被识别的年数小于 100,它就被解释为相对于其日期所在世纪的缩写年,缩写年的日期位于初始化 Date 类的时间的 80 年以前和 19 年以后之间。在调整年数后,从其减去 1900。例如,如果当前的年份是 1999,那么范围 19 至 99 的年数就被假定表示 1919 至 1999,而 0 至 18 的年数就被假定表示 2000 至 2018。注意,这与 SimpleDateFormat 中使用的小于 100 的年份具有稍微不同的解释。
  • 如果数字后跟一个冒号,则认为是小时,如果小时已经被识别,则认为是分钟。
  • 如果数字后跟一个斜杠,则认为是月份(把它减 1,以便产生范围 011 的数字),如果月份已经被识别,则认为它是月中的某一天。
  • 如果数字后跟空白、逗号、连字符或结束字符串,那么如果小时已识别但分钟未识别,则认为是分钟;否则,如果分钟已识别,而秒没有识别,则认为是秒;否则,它被认为是月中的某一天。

连续的字母序列被认为是单词,并按以下方法进行处理:

  • 忽略匹配 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(忽略大小写)的任何单词都认为是指 UTC。
  • 匹配 EST、CST、MSTPST(忽略大小写)的任何单词都被认为是指北美的时区,该时区分别比格林威治时间晚 5、6、7 或 8 小时。匹配 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 表示 1 月。

返回:
此日期所表示的月份。
另请参见:
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 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday) 表示一周中的某一天,该周包含或开始于此 Date 对象所表示的瞬间(用本地时区进行解释)。

返回:
此日期所表示的一周中的某一天。
另请参见:
Calendar

getHours

@Deprecated
public int getHours()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。

返回此 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 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

返回:
自 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 - 日期。
返回:
当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间早,才返回 true;否则返回 false
抛出:
NullPointerException - 如果 when 为 null。

after

public boolean after(Date when)
测试此日期是否在指定日期之后。

参数:
when - 日期。
返回:
当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否则返回 false
抛出:
NullPointerException - 如果 when 为 null。

equals

public boolean equals(Object obj)
比较两个日期的相等性。当且仅当参数不为 null,并且是一个表示与此对象相同的时间点(到毫秒)的 Date 对象时,结果才为 true

因此,当且仅当 getTime 方法对于两个 Date 对象返回相同的 long 值时,这两个对象才是相等的。

覆盖:
Object 中的 equals
参数:
obj - 要与之比较的对象。
返回:
如果对象相同,则返回 true;否则,返回 false
另请参见:
getTime()

compareTo

public int compareTo(Date anotherDate)
比较两个日期的顺序。

指定者:
接口 Comparable<Date> 中的 compareTo
参数:
anotherDate - 要比较的 Date
返回:
如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。
抛出:
NullPointerException - 如果 anotherDate 为 null。
从以下版本开始:
1.2

hashCode

public int hashCode()
返回此对象的哈希码值。结果是 getTime() 方法返回的基本 long 值的两部分的异或。也就是说,哈希码就是以下表达式的值:
(int)(this.getTime()^(this.getTime() >>> 32))

覆盖:
Object 中的 hashCode
返回:
此对象的哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

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 是年份,显示为 4 位十进制数。

覆盖:
Object 中的 toString
返回:
此日期的字符串表示形式。
另请参见:
toLocaleString(), toGMTString()

toLocaleString

@Deprecated
public String toLocaleString()
已过时。 从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代。

以与实现相关的方式创建此 Date 对象的字符串表示形式。其目的是这种形式应该为所有 Java 应用程序的用户所熟悉,而不管它运行在何处。它类似于 ISO C 的 strftime() 函数支持的 "%c" 格式。

返回:
此日期的字符串表示形式(使用语言环境约定)。
另请参见:
DateFormat, toString(), 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 是年份,显示为 4 位十进制数。
  • hh 是一天中的小时(0023),显示为两位进制数。
  • mm 是小时中的分钟(0059),显示为两位十进制数。
  • ss 分钟中的秒数(0061),显示为两位十进制数。
  • GMT 就是 ASCII 字母 "GMT",代表格林威治标准时 (Greenwich Mean Time)。

结果不依赖于本地时区。

返回:
此日期的字符串表示形式(使用 Internet GMT 约定)。
另请参见:
DateFormat, toString(), toLocaleString()

getTimezoneOffset

@Deprecated
public int getTimezoneOffset()
已过时。 从 JDK 1.1 开始,由 -(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000) 取代。

返回相对于 UTC(相应于此 Date 对象表示的时间)的本地时区的偏移量(以分钟为单位)。

例如,在马萨诸塞州,比格林威治时间晚 5 个时区:

new Date(96, 1, 14).getTimezoneOffset() 返回 300
因为在 1996 年 2 月 14 日,使用标准时间(东部标准时间),此时间和 UTC 有 5 小时的偏移量;但是:
new Date(96, 5, 1).getTimezoneOffset() 返回 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_OFFSET, Calendar.DST_OFFSET, TimeZone.getDefault()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策