before:d1.before(d2) 只有d1在d2之前才返回true 否则false 相当于 d1 < d2
after: d1.after(d2) 只有d1在d2之后才返回true 否则false 相当于 d1 > d2
这两个函数在不使用!(非运算符)的情况下且单独使用时 均不包含=的情况(如<= >=)
除非对这两个函数足够了解 否则还是使用getTime()来进行时间的比较才更清晰明了
测试代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2019-5-28");
Date d2 = sdf.parse("2019-5-28");
System.out.println("d1=d2时,before函数:"+d1.before(d2));
System.out.println("d1=d2时,after函数:"+d1.after(d2));
d1 = sdf.parse("2019-5-28");
d2 = sdf.parse("2019-5-29");
System.out.println("d1<d2时,before函数:"+d1.before(d2));
System.out.println("d1<d2时,after函数:"+d1.after(d2));
d1 = sdf.parse("2019-5-28");
d2 = sdf.parse("2019-5-27");
System.out.println("d1>d2时,before函数:"+d1.before(d2));
System.out.println("d1>d2时,after函数:"+d1.after(d2));
测试结果如下:
d1=d2时,before函数:false
d1=d2时,after函数:false
d1<d2时,before函数:true
d1<d2时,after函数:false
d1>d2时,before函数:false
d1>d2时,after函数:true
使用:
/**
* 比较当前时间和服务器返回时间大小
*
* @param nowDate
* @param compareDate
* @return
*/
public boolean compareDate(String nowDate, String compareDate) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date now = df.parse(nowDate);
Date compare = df.parse(compareDate);
if (now.before(compare)) {
return true;
} else {
return false;
}
} catch (ParseException e) {
e.printStackTrace();
return false;
}
}