比较 java 中的日期未按预期工作
Comparing dates in java not working as expected
我正在尝试比较 2 个日期,第一个是用户传递的参数,另一个是当前日期。现在对于以下代码,它仅在两个日期之间的间隔大于 1 时才有效。
例如,如果我选择日期 10/12/2015 而当前日期是 9/12/15 我得到了错误但如果选择的日期是 11/12/15 而当前日期是 9/12/15 我得到了 true.
这是我的代码:
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();
}
我正在尝试比较 2 个日期,第一个是用户传递的参数,另一个是当前日期。现在对于以下代码,它仅在两个日期之间的间隔大于 1 时才有效。 例如,如果我选择日期 10/12/2015 而当前日期是 9/12/15 我得到了错误但如果选择的日期是 11/12/15 而当前日期是 9/12/15 我得到了 true.
这是我的代码:
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();
}