LocalDateTime.now() / LocalTime.now()
| 対応: | Java 8(2014) |
|---|
『LocalDateTime』は日付と時刻の両方を表すクラス、『LocalTime』は時刻のみを表すクラスです(Java 8+)。タイムゾーン情報を持たないため、サーバーのローカル時刻の取得やログのタイムスタンプ記録などに使用します。
構文
// 現在の日時を取得します LocalDateTime now = LocalDateTime.now(); // 現在の時刻を取得します LocalTime time = LocalTime.now(); // 時を取得します(0〜23) now.getHour(); // 分を取得します(0〜59) now.getMinute(); // 秒を取得します(0〜59) now.getSecond();
メソッド一覧
| メソッド | 概要 |
|---|---|
| LocalDateTime.now() | 現在の日時を取得します。 |
| LocalDateTime.of(date, time) | LocalDate と LocalTime を組み合わせて LocalDateTime を作成します。 |
| LocalTime.now() | 現在の時刻を取得します。 |
| LocalTime.of(hour, minute) | 指定した時・分の LocalTime を作成します。 |
| getHour() | 時を 0〜23 の int 型で返します。 |
| getMinute() | 分を 0〜59 の int 型で返します。 |
| getSecond() | 秒を 0〜59 の int 型で返します。 |
| toLocalDate() | LocalDateTime から日付部分の LocalDate を取得します。 |
| toLocalTime() | LocalDateTime から時刻部分の LocalTime を取得します。 |
サンプルコード
sample_LocalDateTimeExample.java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
class LocalDateTimeExample {
public static void main(String[] args) {
// 指定した日時を作成します
LocalDate date = LocalDate.of(2025, 4, 1);
LocalTime t = LocalTime.of(14, 30, 0, 123456000);
LocalDateTime now = LocalDateTime.of(date, t);
System.out.println(now); // 『2025-04-01T14:30:00.123456』と出力されます。
// 日付と時刻の各要素を取得します
System.out.println(now.getYear()); // 『2025』と出力されます。
System.out.println(now.getMonthValue()); // 『4』と出力されます。
System.out.println(now.getDayOfMonth()); // 『1』と出力されます。
System.out.println(now.getHour()); // 『14』と出力されます。
System.out.println(now.getMinute()); // 『30』と出力されます。
// 指定した時刻を作成します
LocalTime lunch = LocalTime.of(12, 0);
System.out.println(lunch); // 『12:00』と出力されます。
// LocalDate と LocalTime を組み合わせて LocalDateTime を作成します
LocalTime t2 = LocalTime.of(9, 0);
LocalDateTime meeting = LocalDateTime.of(date, t2);
System.out.println(meeting); // 『2025-04-01T09:00』と出力されます。
// 日付部分と時刻部分を分けて取得します
System.out.println(now.toLocalDate()); // 『2025-04-01』と出力されます。
System.out.println(now.toLocalTime()); // 『14:30:00.123456』と出力されます。
}
}
LocalDateTimeExample.java
javac LocalDateTimeExample.java java LocalDateTimeExample 2025-04-01T14:30:00.123456 2025 4 1 14 30 12:00 2025-04-01T09:00 2025-04-01 14:30:00.123456
概要
『LocalDateTime』もイミュータブルであり、plusHours() や minusMinutes() などのメソッドは新しいオブジェクトを返します。タイムゾーンを考慮したい場合は ZonedDateTime を使用してください。異なるタイムゾーンの時刻を比較する場合、LocalDateTime はタイムゾーン情報を持たないため正確な比較ができません。
日時のフォーマット(文字列への変換)については『DateTimeFormatter.ofPattern() / format()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。