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-213. 現在の時刻を表示
現在の時刻(時、分、秒、ナノ秒)を表示するには、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.3642874. 現在の日付と時刻を表示
現在の日付と時刻を同時に表示するには、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.3652515. 日付と時刻のフォーマット
上記の例に含まれる「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:255.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" |