如何从Date中删除毫秒,秒,分钟和小时

Ade*_*lin 7 java date

我遇到了一个问题,我想比较两个日期.但是,我只想比较年,月和日.这就是我能做到的:

 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)

我使用此功能来修剪所有单位,但天,月和年.

现在,问题是你怎么看待它?你知道其他任何方式吗?

谢谢

Cos*_*atu 8

你真的需要用java.util.Date吗?如果你可以切换到joda时间,你会发现非常好的功能,如:

dateTime.dayOfMonth().roundFloorCopy()
Run Code Online (Sandbox Code Playgroud)

这正是你所需要的.


小智 6

您的代码有效且易于阅读.我没有看到任何改变它的问题或原因.


JHS*_*JHS 2

我假设您想比较两个日期,其中您只想比较year,monthday

你所做的很好,即删除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)