当前文件是否超过X时间

时间:2016-05-26 16:18:57

标签: java datetime java-8 nio

我想检查文件创建是否早于特定时间(天)。到目前为止,这是我获得文件创建时间的方式。

BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
long fileCreationTime = attr.creationTime().toMillis();

现在我想检查这个文件是否是在X天之前创建的。我该怎么做呢?我试图调查LocalDateTime但是很遗憾。

P.S:我不想使用任何外部库。

1 个答案:

答案 0 :(得分:2)

试试这个:

long numberOfDays = 5L;
if (attr.creationTime().toInstant().isBefore(
        Instant.now().minus(numberOfDays, ChronoUnit.DAYS)
    )
) {
    // do something
}

如果您想检查file是否早于X个月,您可以继续下一个:

LocalDateTime dt = LocalDateTime.now();
ZonedDateTime zdt = dt.atZone(ZoneId.systemDefault());
long numberOfMonths = 5L;
if (attr.creationTime().toInstant().isBefore(
        dt.minus(numberOfMonths, ChronoUnit.MONTHS).toInstant(zdt.getOffset())
    )
) {
    // do something
}