可能重复:
Compare dates in java
我以yyyy-MM-dd格式从服务器获取两个日期。我必须比较这两个日期。我使用compareTo()方法来比较两个日期。假设我的服务器总是以yyyy-MM-dd格式返回非空值,那么比较两个日期的更简单方法是什么?
定义方法
void compareTwoDates(String startDate, String endDate){
switch(startDate.compareTo(endDate)){
case -1:
//START DATE IS BIGGER THAN END DATE
System.out.println(endDate+" IS BIGGER THAN "+startDate);
break;
case 0:
//BOTH DATE ARE SAME
System.out.println("SAME DATE");
break;
case 1:
//END DATE IS BIGGER
System.out.println(startDate+" IS BIGGER THAN "+endDate);
break;
}
}
使用以下方式调用方法
compareTwoDates("2012-05-06", "2012-04-08");
compareTwoDates("2012-04-09", "2012-04-09");
compareTwoDates("2012-04-09", "2011-05-10");
答案 0 :(得分:2)
答案 1 :(得分:1)
不要将String比作日期......只有痛苦和痛苦可以来自这种方法。
类似的东西:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2012-04-04");
Date d2 = sdf.parse("2012-04-05");
将满足您的需求,然后您可以使用Date compareTo方法,比较日期,因为它们应该被比较,而不是没有年,月等上下文的字符串值。
答案 2 :(得分:1)
检查此样本。
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
答案 3 :(得分:0)
使用java.util.Calendar类 - 之前和之后将完成工作。
用于解析字符串使用java.text.SimpleDateFormat