我有文件夹 /tmp/builddatefolder/ 该文件夹包含文件夹列表,具有名称
02-13-2025.20.38
02-13-2024.20.30
02-12-2023.20.20
02-11-2024.20.38
问题是如何选择名称中具有最新日期的文件夹
我已经尝试过了
DateTimeFormatter f = DateTimeFormatter.ofPattern("MM-dd-yyyy.HH.mm");
LocalDate latest = inputs.stream()
.map(s -> LocalDate.parse(s, f))
.max(LocalDate::compareTo)
.get();
System.out.println("LATEST FOLDER DATE ="+latest);
输出为 2025 年 2 月 13 日
预计产出 02-13-2025.20.38
无论如何,请帮助我获得所需的输出?
首先,你需要解析到LocalDateTime,不是
LocalDate
,你会丢失时间信息。
然后,由于您所需的格式是自定义的,因此您需要格式化最新的。它与输入解析格式匹配,因此您可以重用现有的格式化程序。
public class RandomStuff {
public static void main(String[] args) {
List<String> inputs = List.of("02-13-2025.20.38", "02-13-2024.20.30", "02-12-2023.20.20", "02-11-2024.20.38");
DateTimeFormatter f = DateTimeFormatter.ofPattern("MM-dd-yyyy.HH.mm");
LocalDateTime latest = inputs.stream()
.map(s -> LocalDateTime.parse(s, f))
.max(LocalDateTime::compareTo)
.get();
System.out.println("LATEST FOLDER DATE = " + f.format(latest));
}
}