Date 比较

日期比较的方式:

1. after/before

使用after/before进行日期比较时注意: 
date1.after(date2) 
当date1大于date2时,返回true,当小于等于时,返回false;

date1.before(date2) 
当date1小于date2时,返回true,当大于等于时,返回false.

!currentDate.before(startDate) && !currentDate.after(engMPTask.getEndDate())

相当于

currentDate.getTime() >= startDate.getTime() && currentDate.getTime() <= engMPTask.getEndDate().getTime()

2. 用date.getTime() 返回long,再进行比较

if(dt1.getTime() < dt2.getTime()) {}

3. compareTo

两个Date类型的变量可以通过compareTo方法来比较。此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。 
实际上比较的是自1970 年 1 月 1 日 00:00:00 GMT以来的毫秒数。毫秒数越大的时间越大。String DateStr1 = "2011-10-1 10:20:16";

String DateStr2 = "2011-10-07 15:50:35";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateTime1 = dateFormat.parse(DateStr1);
Date dateTime2 = dateFormat.parse(DateStr2);
int i = dateTime1.compareTo(dateTime2); 
System.out.println(i < 0);

4. SimpleDateFormat的format方法将日期型转化成时间或日期的字符串,然后再比较字符串

日期型转换为字符串:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");  
String str=sdf.format(date);

beginTime.compareTo(endTime)<0时,开始时间小于结束时间

注意:如果一个日期格式是2016-01-01,但是另一个日期格式是2016-1-1时,直接使用字符串进行比较就会存在问题。

猜你喜欢

转载自blog.csdn.net/yueloveme/article/details/81094273