确定文件年龄(以天为单位)

时间:2018-01-22 17:15:36

标签: java

鉴于Path,我想根据上次修改时间确定文件的年龄。我知道如何获得最后修改时间:

FileTime t = Files.getLastModifiedTime(path);

我也知道如何通过以下方式获取当前日期/时间:

LocalDate now = LocalDate.now();

然而,我没有看到两者之间有任何联系。我想我必须从一种类型转换为另一种类型,然后以天计算差异,但此时我仍然坚持阅读文档。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:9)

我不会使用LocalDate.now() - 这取决于您当前的时区。 已过去时间的文件年龄可以按时区中立方式计算。

相反,通过FileTimeInstant转换为toInstant,然后您就可以找到持续时间:

Instant fileInstant = t.toInstant();
Instant now = clock.instant(); // Where clock is a java.time.Clock, for testability
Duration difference = Duration.between(fileInstant, now);
long days = difference.toDays();

答案 1 :(得分:2)

您可以在toMillis()中使用FileTime方法:

long ft = t.toMillis();
long now = System.currentTimeMillis();
long diff = ft - now; // diff in milliseconds