我遇到了一个问题,我想比较两个日期.但是,我只想比较年,月和日.这就是我能做到的:
private Date trim(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR, 0);
return calendar.getTime();
}
Run Code Online (Sandbox Code Playgroud)
我使用此功能来修剪所有单位,但天,月和年.
现在,问题是你怎么看待它?你知道其他任何方式吗?
谢谢
你真的需要用java.util.Date吗?如果你可以切换到joda时间,你会发现非常好的功能,如:
dateTime.dayOfMonth().roundFloorCopy()
Run Code Online (Sandbox Code Playgroud)
这正是你所需要的.
我假设您想比较两个日期,其中您只想比较year,month和day。
你所做的很好,即删除hour、和。您必须对两个日期都执行此操作。minutesecondmillisecond
修剪完成后,您将必须使用类compareTo中的方法Date。
您可以使用以下代码 -
if(date1.compareTo(date2) < 0) {
// date1 is earlier
} else if(date1.compareTo(date2) > 0) {
// date 2 is earlier
} else {
// both dates are equal
}
Run Code Online (Sandbox Code Playgroud)