こんにちは。たろすです。
今回は日付/時刻APIの日時の取得について説明します。
日付/時刻の種類
時差情報を含まない現地日時をローカルタイムと呼びます。
それを表現するクラスは以下の三つです。
・LocalDate(日付のみ)
・LocalTime(時刻のみ)
・LocalDateTime(日付と時刻)
一方で、時差情報を含む日時をオフセットタイムと呼びます。
オフセットタイムは以下の二つのクラスによって表現されます。
・OffsetTime(時刻のみ)
・OffsetDateTime(日付と時刻)
またタイムゾーンによる時差を扱うクラスもあります。
このクラスではサマータイムも考慮することができます。
・ZonedDateTime
そして、年、年月、月日を扱うクラスもあります。
・Year(年)
・YearMonth(年月)
・MonthDay(月日)
現在の日時を取得
現在の日時を取得するにはnowメソッドを使います。
System.out.println("LocalDate:" + LocalDate.now());
System.out.println("LocalTime:" + LocalTime.now());
System.out.println("LocalDateTime:" + LocalDateTime.now());
System.out.println("OffsetTime" + OffsetTime.now());
System.out.println("OfsetDateTime:" + OffsetDateTime.now());
System.out.println("ZonedDateTime:" + ZonedDateTime.now());
System.out.println("Year:" + Year.now());
System.out.println("YearMonth:" + YearMonth.now());
System.out.println("MonthDay:" + MonthDay.now());
LocalDate:2022-01-15
LocalTime:15:29:19.899
LocalDateTime:2022-01-15T15:29:19.899
OffsetTime15:29:19.903+09:00
OfsetDateTime:2022-01-15T15:29:19.903+09:00
ZonedDateTime:2022-01-15T15:29:19.903+09:00[Asia/Tokyo]
Year:2022
YearMonth:2022-01
MonthDay:--01-15
特定の日時を取得
特定の日時を取得するにはofメソッドを使います。
System.out.println("LocalDate:" + LocalDate.of(2022, 4, 22));
System.out.println("LocalTime:" + LocalTime.of(18, 10, 25));
System.out.println("LocalDateTime:" + LocalDateTime.of(2022, 4, 22, 18, 10, 25));
System.out.println("OffsetTime" + OffsetTime.of(18, 10, 25, 0, ZoneOffset.ofHours(9)));
System.out.println("OfsetDateTime:" + OffsetDateTime.of(2022, 4, 22, 18, 10, 25, 0, ZoneOffset.ofHours(9)));
System.out.println("ZonedDateTime:" + ZonedDateTime.of(2022, 4, 22, 18, 10, 25, 0, ZoneId.of("Asia/Tokyo")));
System.out.println("Year:" + Year.of(2022));
System.out.println("YearMonth:" + YearMonth.of(2022, 4));
System.out.println("MonthDay:" + MonthDay.of(4, 22));
LocalDate:2022-04-22
LocalTime:18:10:25
LocalDateTime:2022-04-22T18:10:25
OffsetTime18:10:25+09:00
OfsetDateTime:2022-04-22T18:10:25+09:00
ZonedDateTime:2022-04-22T18:10:25+09:00[Asia/Tokyo]
Year:2022
YearMonth:2022-04
MonthDay:--04-22
日付インスタンスを取得するにはparseメソッドを使います。
例としてLocalDateTimeインスタンスを取得するコードを示します。
LocalDateTime dt = LocalDateTime.parse("2022-04-22T18:10:25.000");
System.out.println(dt);
2022-04-22T18:10:25
おわりに
今回は日付/時刻APIの日時の取得について説明しました。