在java中比较日期未按预期工作
我试图比较两个日期,一个是通过参数从用户传递的,另一个是当前日期。现在,对于以下代码,只有当两个日期之间的间隔大于1时,它才起作用。 例如,如果我选择的日期是2015年12月10日,而当前日期是2015年12月9日,我得到的是假,但如果选择的日期是2015年12月11日,而当前日期是2015年12月9日,我得到的是真 这是我的代码:在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
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=新日期()代码>。