2016-05-26 7 views
2

ファイルの作成が特定の時間(日)より古いかどうかを確認します。これまでのところ、これは私がファイルの作成時間を得た方法です。現在のファイルがX時刻より古いかどうか

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

は今、私は、このファイルが日かいないのX番号の前に作成されたかどうかを確認します。どのように私はそれについて行くだろう。私はLocalDateTimeを調べようとしていますが、紛失してしまいます。

P.S:私は外部ライブラリを使用したくありません。

+1

'LocalDateTime'についてあなたを混乱何? –

+1

これって何? http://stackoverflow.com/questions/32904886/java-util-date-calculate-difference-in-dayまたはthis http://stackoverflow.com/questions/1555262/calculating-the-difference-between-two-java -date-instances? – Tunaki

答えて

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 
} 
+0

ありがとうございます。私が 'Instant now = Instant.now()。マイナス(6L、ChronoUnit.MONTHS);を試してみたら、' Usupported Unit:Months'という例外があります。私は、 'file'がXの月数よりも古いかどうか調べたいと思います。 –

+1

はx日数です –

+1

月をカバーするために私の回答が更新されました。再度確認してください –

関連する問題