JAVA:如何从名称包含时间戳的目录列表中选择目录(最新的)

问题描述 投票:0回答:1

我有文件夹 /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

无论如何,请帮助我获得所需的输出?

java arrays sorting
1个回答
0
投票

首先,你需要解析到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));
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.