LoginSignup
1
1

More than 3 years have passed since last update.

【Java】Java8から追加されたTime APIを使って10日後の日付を取得・表示

Posted at

今までのおさらい

新しく追加されたTime APIを使用してみる

新しく追加されたAPI

クラス 時間 ゾーン 用途
ZonedDateTime 厳密な日時情報
LocalDateTime X 日常使う日時情報
LocalDate X X 誕生日
LocalTime X X X X アラーム時刻など
Year X X X X 著作発表年など
YearMonth X X X カード有効期限など
Month X X X X 決算月など
MonthDay X X X 日本の祝日など

このうちLocalDateを使って10日後を計算してみました

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

// Java8から追加されたTime APIを使用
// 10日後の日付を取得する
public class TenDaysCalendarNewAPI {

    public static void main(String[] args) {
        LocalDate now = LocalDate.now();
        LocalDate future = now.plusDays(10);

        // フォーマットを指定せずに表示
        System.out.println("■ LocalDate型をそのまま表示");
        System.out.println(now);
        System.out.println(future);
        System.out.println();

        // フォーマットを指定して表示
        System.out.println("■ DateTimeFormatterを使って表示");
        DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        System.out.println(now.format(f));
        System.out.println(future.format(f));
        System.out.println();

        System.out.println("■ SimpleDateFormatを使って表示");
        SimpleDateFormat f2 = new SimpleDateFormat("yyyy年MM月dd日");
        System.out.println(f.format(now));
        System.out.println(f.format(future));
    }

}

実行結果
■ LocalDate型をそのまま表示
2020-10-12
2020-10-22

■ DateTimeFormatterを使って表示
2020年10月12日
2020年10月22日

■ SimpleDateFormatを使って表示
2020年10月12日
2020年10月22日

新しいAPIの方が扱いやすいですね

自分の直感的には扱いやすいと感じました。それはformat指定の際にですね、

SimpleDateFormatは、SimpleDateFormatに日付情報を渡す
DateTimeFormatterは、日付情報にDateTimeFormatterの形式を指定する

という部分ですね。

何を入っているかわからんくなってきますが、

自分的には

System.out.println(f.format(now));

という部分がわかりにくいというか、そういうやり方なんでしかたないですが、なんとなく釈然としない感じがありました。

 System.out.println(now.format(f));

のように、nowの日付情報をformatメソッドの引数に渡した形式の情報に変換するというようなイメージの方がわかりやすいということでした!

1
1
1

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
1
1