Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中比较日期未按预期工作_Java_Android_Date_Date Comparison - Fatal编程技术网

在java中比较日期未按预期工作

在java中比较日期未按预期工作,java,android,date,date-comparison,Java,Android,Date,Date Comparison,我试图比较两个日期,一个是通过参数从用户传递的,另一个是当前日期。现在,对于以下代码,只有当两个日期之间的间隔大于1时,它才起作用。 例如,如果我选择的日期是2015年12月10日,而当前日期是2015年12月9日,我得到的是假,但如果选择的日期是2015年12月11日,而当前日期是2015年12月9日,我得到的是真 这是我的代码: chosen_date = bundle.getString("date"); if ((new SimpleDateFormat("dd/MM/yyyy").pa

我试图比较两个日期,一个是通过参数从用户传递的,另一个是当前日期。现在,对于以下代码,只有当两个日期之间的间隔大于1时,它才起作用。 例如,如果我选择的日期是2015年12月10日,而当前日期是2015年12月9日,我得到的是假,但如果选择的日期是2015年12月11日,而当前日期是2015年12月9日,我得到的是真

这是我的代码:

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");
}

我建议您使用
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();
}

只需在if-else语句中交换true和false?但是如果我在至少2天内选择大于当前日期的日期时交换它,它将变为false。你可以看到,只有当间隔等于或小于1天时,我才为假。你是指2015年12月9日还是12月9日/15@ferrellmr“dd/MM/yyyy”-代码中有:)是-但您的问题的格式为9/12/15,因此我正在检查sysdate是15AD还是2015ad如何将其与当前日期进行比较?new date();将返回当前日期。我认为OP希望比较特定的日期(如1990年10月1日),而不是日期(如从纪元开始以毫秒为单位)。我应该如何将其与当前日期一起使用?SimpleDataFormat sdf=新的SimpleDataFormat(“日/月/年”);Date date1=sdf.parse(选择的日期)//Date date2=sdf.parse(tmp.toString());Date date2=新日期()@matant Just:
SimpleDataFormat sdf=新的SimpleDataFormat(“dd/MM/yyyy”)
日期日期1=sdf.parse(选择的日期)
日期日期2=新日期()