【问题标题】:Current file is older than a X time or not当前文件是否早于 X 时间
【发布时间】:2016-05-27 01:09:34
【问题描述】:

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

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

现在我想检查这个文件是否是在X 天数之前创建的。我该怎么做。我正在尝试调查 LocalDateTime 但有点迷失。

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

【问题讨论】:

标签: java datetime java-8 nio


【解决方案1】:

试试这个:

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
}

【讨论】:

  • 谢谢。但如果我尝试Instant now = Instant.now().minus(6L, ChronoUnit.MONTHS);,它会给我一个例外Usupported Unit: Months。我想知道file 是否早于 X 个月。
  • 你的问题是 x 天数
  • 我更新了我的答案以涵盖几个月,请再次检查
猜你喜欢
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 2015-01-04
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多