JAVA的Date类
类Date
/-------------------------以下大部分内容摘自jdk1.6API------------------------------------/
util包下的Date类:java.util.Date,其子类有java.sql.Date
类 Date 表示特定的瞬间,精确到毫秒。
在类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 日的相同含义。
/*Date的许多方法已过时,被 java.util.Calendar 所取代。
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。 */
一、构造方法:
Date date=new Date();
System.out.println(date);输出当前系统时间
例:Thu Dec 21 19:07:46 CST 2017
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 date=new Date(1,0,1,12,60,61);
System.out.println(date);
输出:Tue Jan 01 13:01:01 CST 1901
*年为1900年+输入的年份,月为1+输入的月份(从0开始,0-11),超出范围会自动加到前面。
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)
测试此日期是否在指定日期之前。
int compareTo(Date anotherDate)
比较两个日期的顺序。返回—1为在anotherDate前,0为相等,1为在anotherDate后。
boolean equals(Object obj)
比较两个日期的相等性。
int getDate() //返回日
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。
int getDay() //返回星期(1-6为星期1-6,0为星期日)
已过时。 从 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() //返回月-1(0-11)
已过时。 从 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 getYear() //返回年-1900
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.YEAR) - 1900 取代。
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 toString()
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
package t1;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class date {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
Date d=new Date();
Calendar c=Calendar.getInstance();
c.setTime(d);
c.add(Calendar.DATE, 10);
System.out.println(sdf.format(c.getTime()));
}
}
当前输出:2017年12月31日
---------------------------------------------------------------------------------------
/-------------------------以下大部分内容摘自jdk1.6API------------------------------------/
util包下的Date类:java.util.Date,其子类有java.sql.Date
类 Date 表示特定的瞬间,精确到毫秒。
在类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 日的相同含义。
/*Date的许多方法已过时,被 java.util.Calendar 所取代。
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。 */
一、构造方法:
Date date=new Date();
System.out.println(date);输出当前系统时间
例:Thu Dec 21 19:07:46 CST 2017
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 date=new Date(1,0,1,12,60,61);
System.out.println(date);
输出:Tue Jan 01 13:01:01 CST 1901
*年为1900年+输入的年份,月为1+输入的月份(从0开始,0-11),超出范围会自动加到前面。
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)
测试此日期是否在指定日期之前。
int compareTo(Date anotherDate)
比较两个日期的顺序。返回—1为在anotherDate前,0为相等,1为在anotherDate后。
boolean equals(Object obj)
比较两个日期的相等性。
int getDate() //返回日
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。
int getDay() //返回星期(1-6为星期1-6,0为星期日)
已过时。 从 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() //返回月-1(0-11)
已过时。 从 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 getYear() //返回年-1900
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.YEAR) - 1900 取代。
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 toString()
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
---------------------------------------------------------------------------------------
例题:
按照"yyyy年MM月dd日"的格式在控制台输出距当前时间10天后的时间。package t1;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class date {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
Date d=new Date();
Calendar c=Calendar.getInstance();
c.setTime(d);
c.add(Calendar.DATE, 10);
System.out.println(sdf.format(c.getTime()));
}
}
当前输出:2017年12月31日
---------------------------------------------------------------------------------------