比较java中的日期不能按预期工作

时间:2015-12-09 11:54:54

标签: java android date date-comparison

我正在尝试比较2个日期1是来自用户的参数,另一个是当前日期。现在,对于以下代码,仅当两个日期之间的间隔大于1时,它才起作用。 例如,如果我选择日期10/12/2015并且当前日期是9/12/15我得到了假,但如果所选日期是11/12/15并且当前日期是9/12/15,那我就得到了。< / p>

这是我的代码:

chosen_date = bundle.getString("date");
if ((new SimpleDateFormat("dd/MM/yyyy").parse(chosen_date).getTime() / (1000 * 60 * 60 * 24)) > System.currentTimeMillis() / (1000 * 60 * 60 * 24)) {
     datecompre = true;
     Log.d("date equ","date is bigger");
} else {
     datecompre = false;
     Log.d("date equ","date is smaller");
}

1 个答案:

答案 0 :(得分:3)

我建议您使用Date.after()Date.before()方法。

这是一个例子:

try{

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date date1 = sdf.parse("yourFirstDate"); //or just "new Date();" if you want the current date
    Date date2 = sdf.parse("yourSecondDate"); 

    if(date1.after(date2)){
       Log.d("Date1 is after Date2");
    } else if(date1.before(date2)){
       Log.d("Date1 is before Date2");
    } else {
       Log.d("Date1 is equal Date2");
    }

}catch(ParseException e){
     e.printStackTrace();
}