Java 速習チュートリアル

Java における日付と時刻

1. Javaの日付(Java Dates)

Javaには標準で「日付クラス」は組み込まれていませんが、java.time パッケージをインポートすることで、日付と時刻のAPIを利用できます。このパッケージには多くの日付・時刻関連のクラスが含まれています。

クラス説明
LocalDate日付(年、月、日 (yyyy-MM-dd))を表します。
LocalTime時刻(時、分、秒、ナノ秒 (HH-mm-ss-ns))を表します。
LocalDateTime日付と時刻の両方(yyyy-MM-dd-HH-mm-ss-ns)を表します。
DateTimeFormatter日付時刻オブジェクトを表示・解析するためのフォーマッタです。

「パッケージ」の概念について詳しく知りたい場合は、Javaパッケージチュートリアルを参照してください。

2. 現在の日付を表示

現在の日付を表示するには、java.time.LocalDate クラスをインポートし、その now() メソッドを使用します。

実装例:

import java.time.LocalDate; // LocalDateクラスをインポート

public class Main {
  public static void main(String[] args) {
    LocalDate myObj = LocalDate.now(); // 日付オブジェクトを作成
    System.out.println(myObj); // 現在の日付を表示
  }
}

出力結果:

2026-04-21

3. 現在の時刻を表示

現在の時刻(時、分、秒、ナノ秒)を表示するには、java.time.LocalTime クラスをインポートし、その now() メソッドを使用します。

実装例:

import java.time.LocalTime; // LocalTimeクラスをインポート

public class Main {
  public static void main(String[] args) {
    LocalTime myObj = LocalTime.now();
    System.out.println(myObj);
  }
}

この例ではサーバーのローカル時刻が表示されるため、お住まいの地域の時刻とは異なる場合があります:

9:37:25.364287

4. 現在の日付と時刻を表示

現在の日付と時刻を同時に表示するには、java.time.LocalDateTime クラスをインポートし、その now() メソッドを使用します。

実装例:

import java.time.LocalDateTime; // LocalDateTimeクラスをインポート

public class Main {
  public static void main(String[] args) {
    LocalDateTime myObj = LocalDateTime.now();
    System.out.println(myObj);
  }
}

出力結果の例:

2026-04-21T09:37:25.365251

5. 日付と時刻のフォーマット

上記の例に含まれる「T」は、日付と時刻を区切るために使用されています。同じパッケージ内の DateTimeFormatter クラスと ofPattern() メソッドを使用することで、日付時刻オブジェクトを任意の形式にフォーマット(整形)したり、解析したりできます。

以下の例では、日付時刻から「T」とナノ秒を除去して表示します。

実装例:

import java.time.LocalDateTime; // LocalDateTimeクラスをインポート
import java.time.format.DateTimeFormatter; // DateTimeFormatterクラスをインポート

public class Main {
  public static void main(String[] args) {
    LocalDateTime myDateObj = LocalDateTime.now();
    System.out.println("フォーマット前: " + myDateObj);

    // フォーマットパターンの指定
    DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");

    String formattedDate = myDateObj.format(myFormatObj);
    System.out.println("フォーマット後: " + formattedDate);
  }
}

出力結果:

フォーマット前: 2026-04-21T09:37:25.366662
フォーマット後: 21-04-2026 09:37:25

5.1 ofPattern() メソッドで使用可能なパターン例

日付や時刻を異なる形式で表示したい場合、ofPattern() メソッドには様々な値を指定できます。

値(パターン)
yyyy-MM-dd"2026-04-21"
dd/MM/yyyy"21/04/2026"
dd-MMM-yyyy"21-4月-2026"(ロケールに依存)
E, MMM dd yyyy"火, 4月 21 2026"