比较两个日期的最简单方法是什么

时间:2012-04-09 11:56:32

标签: java

  

可能重复:
  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");

4 个答案:

答案 0 :(得分:2)

使用方法Date.before()Date.after()

答案 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