比较不带时间的日期

2022-09-04 23:51:05

可能的重复:
如何在没有时间部分的情况下比较两个日期?

如何在java中比较没有时间的日期?

Date currentDate = new Date();// get current date           
Date eventDate = tempAppointments.get(i).mStartDate;
int dateMargin = currentDate.compareTo(eventDate); 

此代码比较时间和日期!


答案 1

尝试将日期更改为 00:00:00 的时间进行比较(如此函数所示):

public static Date getZeroTimeDate(Date fecha) {
    Date res = fecha;
    Calendar calendar = Calendar.getInstance();

    calendar.setTime( fecha );
    calendar.set(Calendar.HOUR_OF_DAY, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);

    res = calendar.getTime();

    return res;
}

Date currentDate = new Date();// get current date           
Date eventDate = tempAppointments.get(i).mStartDate;
int dateMargin = getZeroTimeDate(currentDate).compareTo(getZeroTimeDate(eventDate));

答案 2

您可以编写一个方法,该方法返回所有时间字段(小时、分钟、秒、毫、时区)都设置为零的日期的副本。然后你可以比较这些。Date withoutTime(Date)

或者,如果可能的话,您可以切换到Joda Time。该库已经具有 数据类型 ,这就是您要查找的内容。DateMidnight


推荐