要解决这个问题,可以将给定日期和当前日期的日期部分进行比较,而不是比较整个日期对象。

以下是修改后的代码:

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。

private static boolean isDateBeforeTodayString date SimpleDateFormat sdf = new SimpleDateFormatyyyy-MM-dd; try Date givenDate = sdfparsedate; Date today = Calenda

原文地址: https://www.cveoy.top/t/topic/jeua 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录