展开全部
建议使用Calendar类
在JDK 5.0版本e69da5e887aa3231313335323631343130323136353331333262363032中对java.util.Date类的方法说明如下:
java.util
类 Date
所有已实现的接口:
Serializable, Cloneable, Comparable
直接已知子类:
Date, Time, Timestamp
类 Date 表示特定的瞬间,精确到毫秒。另请参见:
DateFormat, Calendar, TimeZone
构造方法:
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 对象并初始化此对象,以表示由 year、month 和 date 参数指定的一天的开始时间(本地时间晚上 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 对象并初始化此对象,以表示本地时区中由 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)已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(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)已过时。 从 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 分”。允许字符串冗余地指定 GMT、UT 或 UTC——例如,GMT-5 或 utc+0430。
如果下面条件之一为真,数字就被认为是年数:
数字等于或大于 70,并且后跟一个空格、逗号、斜杠或结束字符串
数字小于 70,并且已经识别月份和月中的某一天
如果被识别的年数小于 100,它就被解释为相对于其日期所在世纪的缩写年,缩写年的日期位于初始化 Date 类的时间的 80 年以前和 19 年以后之间。在调整年数后,从其减去 1900。例如,如果当前的年份是 1999,那么范围 19 至 99 的年数就被假定表示 1919 至 1999,而 0 至 18 的年数就被假定表示 2000 至 2018。注意,这与 SimpleDateFormat 中使用的小于 100 的年份具有稍微不同的解释。
如果数字后跟一个冒号,则认为是小时,如果小时已经被识别,则认为是分钟。
如果数字后跟一个斜杠,则认为是月份(把它减 1,以便产生范围 0 至 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(忽略大小写)的任何单词都认为是指 UTC。
匹配 EST、CST、MST 或 PST(忽略大小写)的任何单词都被认为是指北美的时区,该时区分别比格林威治时间晚 5、6、7 或 8 小时。匹配 EDT、CDT、MDT 或 PDT(忽略大小写)的任何单词都被识别为在夏令时期间分别指相同的时区。
一旦扫描了整个字符串,就以两种方式之一把它转换成时间结果。如果已经识别时区或时区偏移量,那么年、月、月中某一天、小时、分钟和秒以 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 对象所表示的瞬间。返回的值在 0 和 11 之间,值 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 对象表示的月份中的某一天。返回的值在 1 和 31 之间,表示包含或开始于此 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 对象表示的小时。返回值是一个数字(0 至 23),表示包含或开始于此 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) 取代。
返回此日期所表示的小时已经过去的分钟数(用本地时区进行解释)。返回值在 0 和 59 之间。
返回:
此日期所表示的小时已经过去的分钟数。
另请参见:
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) 取代。
返回此日期所表示的分钟已经过去的秒数。返回的值在 0 和 61 之间。值 60 和 61 只可能发生在考虑了闰秒的 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 中的 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 是一月中的某一天(01 至 31),显示为两位十进制数。
hh 是一天中的小时(00 至 23),显示为两位十进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 是分钟中的秒数(00 至 61),显示为两位十进制数。
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 是一月中的某一天(1 至 31),显示为一位或两位十进制数。
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
yyyy 是年份,显示为 4 位十进制数。
hh 是一天中的小时(00 至 23),显示为两位进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 分钟中的秒数(00 至 61),显示为两位十进制数。
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()
已赞过
已踩过<
你对这个回答的评价是?
评论
收起