import java.util.Date; public class TestDate { public static void main(String[] args){ Date date=new Date(); //无参fastTime=当前时间 long t = System.currentTimeMillis(); System.out.println(t); System.out.println(date); Date a =new Date(1000); System.out.println(a); System.out.println(a.toGMTString()); System.out.println(a.getTime());//返回fastTime a.setTime(232465465); System.out.println(a.toString()); System.out.println(a.toLocaleString()); /* * public void setTime(long time){ 重新设置fastTime * fastTime=time; * cdate=null; * } */ } }对Date类的测试
/*源码*/ public Date() { this(System.currentTimeMillis()); } public Date(long date) { fastTime = date; }
构造器,无参的时候,调用另一个构造器,Date date=new Date(); 时间是当前时间与1970年1.1日0:00的毫秒数差值
@param date the milliseconds since January 1, 1970, 00:00:00 GMT.
public long getTime() {
return getTimeImpl();
}
/* private final long getTimeImpl() {
if (cdate != null && !cdate.isNormalized()) {
normalize();
}
return fastTime;
}
*/
public void setTime(long time) {
fastTime = time;
cdate = null;
}
public boolean before(Date when) {
return getMillisOf(this) < getMillisOf(when);
}
public boolean after(Date when) {
return getMillisOf(this) > getMillisOf(when);
}
befor() 和after()方法就是比较fastTime值的大小,Date d1=new Date(1000); Date d2=new Date(1001); blean a=(d1.getTime()<d2.getTime());
public boolean equals(Object obj) {
return obj instanceof Date && getTime() == ((Date) obj).getTime();
}
重写了Object的equals()方法,先判断是不是属于Date类的对象,与上fastTime值的比较
public boolean equals(Object obj) {
return (this == obj);
}
Date类的核心就是1970.01.01.00:00这个时间点