Java Gold合格への道 ~日付/時刻API・日時の取得~
スポンサーリンク
こんにちは。たろすです。
今回は日付/時刻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