0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Java備忘 LocalDateを使ってみた

Last updated at Posted at 2020-01-24

##はじめに
Javaで○日以上古いファイルを検出するというプログラムを書く機会があったので、備忘として残しておく。
あくまで一つの例として。

##LocalDateを使う
Dateでも可能だが、より新しいLocalDateを使ってみる。

Long lastModified = targetFile.lastModified();
    LocalDate lastDate = Instant.ofEpochMilli(lastModified).atZone(ZoneId.systemDefault()).toLocalDate();

これでファイルクラスで宣言した対象のファイルから最終更新日を取得する。
エポック時間をLocalDate型に変換しているイメージ。

LocalDate daysBefore = LocalDate.now().minusDays(5); 

LocalDateクラスのnow()で本日の日付を取得する。
今回は5日前の日付を対象にするとして、minusDays(5)で取得することができる。

if (lastModified.isBefore(base) || lastModified.isEqual(base))

if (lastModified.compareTo(base) <= 0)

if (lastModified.until(LocalDate.now(), ChronoUnit.DAYS) >= 5)

あとはこんな感じのif文を書いてあげれば指定した日付以前のファイルを炙り出せるはず。
注意したいのはisBefore()だけでは5日より前しか取れないこと。
isEqual()で5日前も取れるようにしてあげる。

追記
@swordoneさんからコメントをいただき、
if文の条件式を追加しました。

##まとめ
ここにFileクラスをピピーっとぶっ込んでやるといい感じなる。
ご指摘等ございましたらコメントお願いします。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?