private static boolean isDateBeforeTodayString date SimpleDateFormat sdf = new SimpleDateFormatyyyy-MM-dd; try Date givenDate = sdfparsedate; Date today = Calenda
要解决这个问题,可以将给定日期和当前日期的日期部分进行比较,而不是比较整个日期对象。
以下是修改后的代码:
private static boolean isDateBeforeToday(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date givenDate = sdf.parse(date);
Date today = Calendar.getInstance().getTime();
// 只比较日期部分,将时间部分设置为0
givenDate = sdf.parse(sdf.format(givenDate));
today = sdf.parse(sdf.format(today));
return givenDate.before(today);
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}
这样修改后,只有给定日期早于当前日期的日期部分时,才会返回true。如果给定日期是今天或之后的日期,将返回false。
原文地址: https://www.cveoy.top/t/topic/jeua 著作权归作者所有。请勿转载和采集!