public static final int DAY = 1;
public static final int HOUR = 3;
public static final int MINUTE= 4;
public static final int SECOND = 5;
/**
* 时间比较
* @param date1
* @param date2
* @param timeUnit
* @return -1 date1>date2;0 date1=date2, 1 date1<date2
*/
public int compareDate(Date date1,Date date2,int timeUnit){
// 思路一:将时间根据毫秒值转换为指定单位的数值;
// long time1 = date1.getTime();
// long time2 = date2.getTime();
// switch (timeUnit){
// case 5:
// time1 = time1/1000;
// time2 = time2/1000;
// case 4:
// time1 = time1/1000/60;
// time2 = time2/1000/60;
// break;
// case 3:
// time1 = time1/1000/60/60;
// time2 = time2/1000/60/60;
// break;
// case 1:
// time1 = time1/1000/60/60/24;
// time2 = time2/1000/60/60/24;
// break;
// default:
// break;
// }
// if(time1 > time2){
// return 1;
// }
// else if(time1 == time2){
// return 0;
// }
// else{
// return -1;
// }
//思路二:将时间根据指定单位转换成字符串,再将字符串时间转换为Date类型,最后使用Date类型的方法进行比较
SimpleDateFormat df = new SimpleDateFormat();
switch(timeUnit){
case 1:
df.applyPattern("yyyy-MM-dd");
break;
case 3:
df.applyPattern("yyyy-MM-dd HH");
break;
case 4:
df.applyPattern("yyyy-MM-dd HH-mm");
break;
case 5:
df.applyPattern("yyyy-MM-dd HH-mm-ss");
break;
default:
break;
}
String str1 = df.format(date1);
String str2 = df.format(date2);
try {
date1 = df.parse(str1);
} catch (ParseException e) {
e.printStackTrace();
}
try {
date2 = df.parse(str2 );
} catch (ParseException e) {
e.printStackTrace();
}
return date1.compareTo(date2);
}