今回は、Javaで日付や時間を扱う方法について学んだ。カレンダー機能や年齢計算などといった、多くのアプリケーションで利用される重要な内容である。今回の講義で学んだことを紹介していく。

1.Date and Time APIとは?
Javaには日付や時間を扱うためのDate and Time APIがある。
主に次の3つのクラスを使用する。

  • LocalDate:日付(年・月・日)を扱う
  • LocalTime:時刻(時・分・秒)を扱う
  • LocalDateTime:日付と時刻の両方を扱う

例えば現在の日付や時刻は、それぞれ次のように取得できます。
LocalDate.now();
LocalTime.now();
LocalDateTime.now();
ちなみにLocalをつけることによって、アメリカ時間や日本時間を考慮しなくなる。


2. 日付や時間を作成する

現在の日時だけでなく、自分で好きな日時を作成することもできる。使うためにはOfを使う。

LocalDate.of(2026, 6, 22);
LocalDateTime.of(2026, 6, 22, 10, 30);
 

3.日付の情報を取得する

LocalDateTimeには、年や月などを取得する便利なメソッドがある。

getYear();
getMonthValue();
getDayOfMonth();
getHour();
getMinute();

4.Periodクラス
Periodクラスは日付同士の期間を求めるクラスである。たとえば、これを用いて生まれてからの時間を求めると、
LocalDate birthday = LocalDate.of(2005, 5, 10);
LocalDate today = LocalDate.now();

Period period = Period.between(birthday, today);

System.out.println(period.getYears() + "年"
       + period.getMonths() + "か月"
       + period.getDays() + "日");
これを行うと
21年1か月12日が得られて、生まれてからの時間を求めることができる。

5.Durationクラス
Durationクラスは時間の差を求めるクラスである。例えば、自分が生まれてから現在に至るまでに経過した日数、時間、分、秒を計算するには、

LocalDate birthday = LocalDate.of(2005, 5, 10);
LocalDateTime birthdayTime = birthday.atStartOfDay();
LocalDateTime now = LocalDateTime.now();

Duration duration = Duration.between(birthdayTime, now);

System.out.println(duration.toDays() + "日");
System.out.println(duration.toHours() + "時間");
System.out.println(duration.toMinutes() + "分");
System.out.println(duration.getSeconds() + "秒");
を実行すると、
7713日
185112時間
11106720分
666403242秒のように出力される。

まとめ
紹介した日付や時間を扱うクラスを自由自在に使いこなせることになることで、さまざまなプログラムを作ることにつながる。ここはしっかり理解していきたい。