站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JavaTM 2 Platform Standard Edition 5.0 API 规范中文版

Date (Java 2 Platform SE 5.0) - JavaTM 2 Platform Standard Edition 5.0 API 规范中文版

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 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:

在所有情形中,针对这些目的赋予方法的参数不需要在指定的范围内;例如,可以把日期指定为 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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策