devoid Asked:2021-12-18 07:22:31 +0800 CST2021-12-18 07:22:31 +0800 CST 2021-12-18 07:22:31 +0800 CST 如何找到与给定时刻最近的日期? 772 有带有 LocalDateTime 日期的对象,我需要找到尚未到达的最近日期并获取其 ID。我想知道如何使用 Stream API 来做到这一点?但是任何最佳选择都可以。 java 1 个回答 Voted Best Answer Владимир Карсанов 2021-12-18T16:48:25+08:002021-12-18T16:48:25+08:00 假设今天是 12 月 18 日。 LocalDateTime today = LocalDateTime.parse("2020-12-18T00:00:00"); LocalDateTime date0 = LocalDateTime.parse("2020-12-16T12:30:10"); LocalDateTime date1 = LocalDateTime.parse("2020-12-17T12:30:10"); LocalDateTime date2 = LocalDateTime.parse("2020-12-18T12:30:10"); LocalDateTime date3 = LocalDateTime.parse("2020-12-19T12:30:10"); LocalDateTime date4 = LocalDateTime.parse("2020-12-20T12:30:10"); List<LocalDateTime> dates = Arrays.asList(date0, date1, date2, date3, date4); Optional<LocalDateTime> tomorrow = dates.stream() //Оставим только даты, начинающиеся с завтрашнего дня .filter(date -> date.toLocalDate().isAfter(today.toLocalDate())) //Выберем минимальную из этих дат .min(LocalDateTime::compareTo); if (tomorrow.isPresent()) { System.out.println(tomorrow.get()); } 输出:2020-12-19T12:30:10——即明天,5 个选项中的一个。
假设今天是 12 月 18 日。
输出:2020-12-19T12:30:10——即明天,5 个选项中的一个。