将日期与Java 8中的三个或更多日期进行比较?

Cet*_*thy 0 java date java-8

使用java.time API,可以使用以下语法比较两个日期:

date1.before(date2);
Run Code Online (Sandbox Code Playgroud)

要么

date2.after(date1);
Run Code Online (Sandbox Code Playgroud)

然而,当比较3个或更多日期时,这变得非常冗长.有没有办法比较Date和其他多个,看看提供的是在所有其他的之前/之后?

And*_*ner 5

你要做的就是将日期与你的"3个或更多"日期中的一个进行比较:你只需计算出哪一个,然后比较两个日期.

Date实现以来Comparable<Date>,您可以使用Collections.minCollections.max查找最早和最新的:

Date earliest = Collections.min(Arrays.asList(date1, date2, date3));
Date latest   = Collections.max(Arrays.asList(date1, date2, date3));
Run Code Online (Sandbox Code Playgroud)

然后:

boolean beforeEarliest = date.before(earliest);
boolean afterLatest    = date.after(latest);
Run Code Online (Sandbox Code Playgroud)

等等

  • @Aconcagua肯定,我也会用它.我只是把它写成"长手",所以我可以命名变量,以便更清楚我在做什么. (2认同)