Java中Date的構(gòu)造方法及大小比較
Date類在jdk1.1中就已經(jīng)出現(xiàn),算得上一個(gè)比較有歷史的類了,用來表示日期時(shí)間。在實(shí)際的工作中有時(shí)會(huì)涉及到對(duì)日期時(shí)間的一個(gè)比較,判斷兩個(gè)時(shí)間的先后順序。
首先來簡單的看一下Date類,因?yàn)樵谄涫褂眠^程發(fā)現(xiàn)其使用存在一些缺陷,Date類大多數(shù)的方法都已被棄用,但是還是有一些人在使用中。下面是Date的兩個(gè)構(gòu)造方法:
public Date() {
this(System.currentTimeMillis());
}
public Date(long date) {
fastTime = date;
}
從這就可以看出創(chuàng)建Date對(duì)象實(shí)際上就是獲取系統(tǒng)當(dāng)前距離1970年0時(shí)0分0秒0毫秒的總的毫秒數(shù)。
比較兩個(gè)Date的大小則可以通過以下保留的一些方法來實(shí)現(xiàn):
1. public boolean after(Date when)
判斷當(dāng)前date是否早于目標(biāo)when,早則返回true,等于或晚于則返回false;
2. public boolean after(Date when)
例如:
Date date1 = new Date();
// 加一個(gè)空循環(huán),避免date1和date2產(chǎn)生間隔過短導(dǎo)致相等
for (int i = 0; i < 1000000; i++) {
}
Date date2 = new Date();
System.out.println(date1.before(date2));
System.out.println(date1.after(date2));
運(yùn)行結(jié)果:
true
false
3. public int compareTo(Date anotherDate)
通過此方法可以比較兩個(gè)Date數(shù)據(jù),當(dāng)前date與anotherDate相等時(shí)返回0,小于返回負(fù)數(shù),大于返回正數(shù)。
判斷上面例子中的date1和date2:
System.out.println(date1.compareTo(date2));
運(yùn)行結(jié)果:
-1
4. public long getTime()
返回系統(tǒng)當(dāng)前距離1970年0時(shí)0分0秒0毫秒的總的毫秒數(shù),直接將兩個(gè)date對(duì)象調(diào)用該方法的返回值進(jìn)行相減,判斷差值大小即可。
- 贊