比较FileTime和LocalDateTime

Mic*_*ael 3 java

如何在Java中比较FileTimeLocalDateTime对象?

我想比较文件(Files.getLastModifiedTime(item))中的FileTime对象和当前时间(LocalDateTime.now()).但它们并不兼容.我该如何比较它们?

Sne*_*neh 15

您可以从 FileTime 获取即时并使用即时创建 LocalDateTime 对象。

例子

FileTime fileTime = Files.getLastModifiedTime(item);
LocalDateTime now = LocalDateTime.now();
LocalDateTime convertedFileTime = LocalDateTime.ofInstant(fileTime.toInstant(), ZoneId.systemDefault());
Run Code Online (Sandbox Code Playgroud)

现在您可以比较 now 和convertedFileTime。

请记住,这并没有考虑可能发生变化的时区。

你也可以一起工作Instant


ass*_*ias 6

FileTimeAPI旨在鼓励您使用Instant,而不是LocalDateTime:

Instant now = Instant.now();
FileTime ft = Files.getLastModifiedTime(item);

if (ft.toInstant().isAfter(now)) { ... }
Run Code Online (Sandbox Code Playgroud)

请注意,这InstantLocalDateTime在这种情况下更有意义,因为它代表了"在现实生活中" 的独特瞬间.a LocalDateTime可能不明确,例如在夏令时变化期间.