java里面判断日期哪个大,哪个小:
条件:日期类型为YYYY-MM-DD
代码如下:(本方法貌似不行!!!我再看看!!见第二个方法!)
/**
* 判断 date 1 和date2 哪个日期大
* 如果date1>date2 1
* 如果date1 =date2 0
* 如果date1<date2 -1
* 要求date1,date2 格式为 YYYY-MM-DD
* @param date1
* @param date2
* @return
* @throws Exception
*/
public static int compareDateByString(String date1,String date2) throws Exception {
SimpleDateFormat format=new SimpleDateFormat("yyyy-mm-dd");
int result=0;
if (date1.equals(date2)) {return result;}
try{
Date date1Str=format.parse(date1);
Date date2Str=format.parse(date2);
if (date1Str.after(date2Str)) {
result=1;
}else{
result=-1;
}
}catch(ParseException e) {
e.printStackTrace();
}
return result;
}
第2个方法:(本类中包括测试方法,测试结果见最底下)
package test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate2 {
static String datetimeFormat = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
String date1 = "2014-03-06";
String date2 = "2014-03-09";
int result = 0;
result = compareDate(date1,date2);
System.out.println("date1和date2相差"+result+"天");
result = compareDate(date2,date1);
System.out.println("交换比较位置后,date1和date2相差"+result+"天");
}
public static Date getDateFromString(String s) {
Date returnDate = new Date();
try {
SimpleDateFormat sdf = new SimpleDateFormat(datetimeFormat);
returnDate = sdf.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return returnDate;
}
/*
* 该方法用于比较两个用字符串表示的日期
* param strDate1,strDate2 要求的格式为'yyyy-mm-dd'
* 返回值为两个日期相差的天数
*/
public static int compareDate(String strDate1, String strDate2)
{
int returnVal = 0;
try {
Date date1 = getDateFromString(strDate1 + " 00:00:00");
Date date2 = getDateFromString(strDate2 + " 00:00:00");
returnVal = (int) ((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24));
} catch (Exception e) {
e.printStackTrace();
}
return returnVal;
}
}
测试结果:
date1和date2相差3天
交换比较位置后,date1和date2相差-3天