【Java】チートシート【日付編】

スポンサーリンク

※このページにはプロモーションが含まれています。当サイトは各種アフィリエイトプログラムから一定の収益を得ています。

よく使う型

  • LocalDateTime・・・現在日時
  • LocalDate・・・現在日付
  • LocalTime・・・現在時刻

現在日時

// 現在日時
LocalDateTime localDateTime = LocalDateTime.now();

// 現在日付
LocalDate localDate = LocalDate.now();

// 現在時刻
LocalTime localTime = LocalTime.now();

年月日時分秒曜日の取得

// 年
int year = date.getYear();
// 月
int month = date.getMonthValue();
// 日
int day = date.getDayOfMonth();
// 時
int hour = date.getHour();
// 分
int minutes = date.getMinute();
// 秒
int second = date.getSecond();
// ナノ秒
int nano = date.getNano();
// 曜日
DayOfWeek week = date.getDayOfWeek();

加算・減算

// 加算・減算
LocalDate date = LocalDate.of(2022,05,01);

// 日数の加算
date.plusDays(1); // 2022-05-02
// 週の加算
date.plusWeeks(1); // 2022-05-08
// 月の加算
date.plusMonths(1); // 2022-06-01
// 年の加算
date.plusYears(1); // 2023-05-01

// 負の数を指定することで〇日前を求めることもできる
// 日数の減算
date.plusDays(-1); // 2022-04-30
// 週の減算
date.plusWeeks(-1); // 2022-04-24
// 月の減算
date.plusMonths(-1); // 2022-04-01
// 年の減算
date.plusYears(-1); // 2021-05-01

// 0を指定することも可能
// この場合、日付は変わらない
// (実務で使うとき0の場合をチェックする必要はなさそう)
date.plusDays(0); // 2022-05-01
// 週の加算
date.plusWeeks(0); // 2022-05-01
// 月の加算
date.plusMonths(0); // 2022-05-01
// 年の加算
date.plusYears(0); // 2022-05-01

月末日・月初日

// 月初日を取得
LocalDate firstDay = LocalDate.of(date.getYear(), date.getMonth(),1);

// 月末日を取得
// 月初日の翌月を出して
LocalDate lastDay = firstDay.plusMonths(1);
// -1日する
lastDay = lastDay.minusDays(1);

比較

// 2022/05/29が比較元
LocalDate date1 = LocalDate.of(2022,05,29);

// 2022/05/28~2022/05/30と比較して動きを確認
LocalDate date2 = LocalDate.of(2022,05,28);
LocalDate date3 = LocalDate.of(2022,05,29);
LocalDate date4 = LocalDate.of(2022,05,30);

// isAfter()はdate > dateの場合trueとなる

// date1: 2022/05/29  date2: 2022/05/28
System.out.println(date1.isAfter(date2)); // date1 > date2なのでtrue

// date1: 2022/05/29  date3: 2022/05/29
System.out.println(date1.isAfter(date3)); // date1 == date3なのでfalse

// date1: 2022/05/29  date4: 2022/05/30
System.out.println(date1.isAfter(date4)); // date1 < date4なのでfalse


// isBefore()はdate < dateの場合trueとなる

// date1: 2022/05/29  date2: 2022/05/28
System.out.println(date1.isBefore(date2)); // date1 > date2なのでfalse

// date1: 2022/05/29  date3: 2022/05/29
System.out.println(date1.isBefore(date3)); // date1 == date3なのでfalse

// date1: 2022/05/29  date4: 2022/05/30
System.out.println(date1.isBefore(date4)); // date1 < date4なのでtrue


// isEqual()はdate == dateの場合trueとなる

// date1: 2022/05/29  date2: 2022/05/28
System.out.println(date1.isEqual(date2)); // date1 > date2なのでfalse

// date1: 2022/05/29  date3: 2022/05/29
System.out.println(date1.isEqual(date3)); // date1 == date3なのでtrue

// date1: 2022/05/29  date4: 2022/05/30
System.out.println(date1.isEqual(date4)); // date1 < date4なのでfalse

関連記事

【Java】チートシート

スポンサーリンク

Java