カテゴリ: Java 更新日: 2025/12/11

JavaのDateクラスの使い方を完全ガイド!初心者でもわかる日付操作

Date クラス
Date クラス

先生と生徒の会話形式で理解しよう

生徒

「Javaで現在の日付や時間を表示したいんですが、どうすればいいですか?」

先生

「それにはjava.utilパッケージにあるDateクラスを使う方法があります。」

生徒

Dateクラスって具体的に何ができるんですか?」

先生

「現在日時の取得や、日時の表示、さらには過去や未来の時間と比較などもできますよ。では、基本から見ていきましょう!」

1. java.util.Dateクラスとは?

1. <code>java.util.Date</code>クラスとは?
1. java.util.Dateクラスとは?

Dateクラスは、Javaで「日付」と「時刻」をまとめて扱うための基本的なクラスです。java.utilパッケージに含まれていて、現在時刻の取得や日時の表示、簡単な時間の比較などに使われます。イメージとしては、カレンダーの日付と時計の時刻をひとつの箱にまとめて入れておくようなものです。

Dateオブジェクトは「ある一瞬の時刻」をミリ秒単位で記録しています。new Date()と書いた瞬間の時刻が中に保存されるので、実行するタイミングが変われば、当然中身の日時も変わります。まずは「時刻をひとまとまりの値として扱うためのもの」と理解しておけば十分です。


import java.util.Date;

public class SimpleDateExample {
    public static void main(String[] args) {
        Date now = new Date();                 // 今この瞬間の日時を表す
        System.out.println("now = " + now);    // 文字としてそのまま表示
    }
}

このように、new Date()で現在の日時を取得し、そのままSystem.out.printlnで表示すると、Thu Sep 04 14:30:21 JST 2025のような形式で出力されます。細かい書式の調整は別の仕組みが必要ですが、「まずはこの形で現在日時を確認できる」と覚えておくと、ログ出力や動作確認に役立ちます。

JavaのバージョンによってはDateクラスの中の一部メソッドが非推奨になっていますが、日付と時刻のしくみを学ぶ入口としては今でもよく使われます。基礎的な役割や考え方をつかんでおくと、このあと学ぶ比較処理や新しい日付APIの理解もしやすくなります。

2. Dateクラスで現在の日時を取得する方法

2. Dateクラスで現在の日時を取得する方法
2. Dateクラスで現在の日時を取得する方法

実際にDateクラスを使ってみるとイメージがつかみやすくなります。Javaで現在の日時(今この瞬間の時刻)を知りたいときは、Dateクラスのインスタンスをひとつ作るだけです。特別な設定は不要で、「現在の日時をください」とお願いする感覚で、new Date()と書けばOKです。

流れとしては、①Dateクラスを読み込む、②new Date()で現在の日時を表すオブジェクトを作る、③System.out.printlnで画面(コンソール)に表示、という3ステップだけなので、プログラミング未経験の方でも真似しやすい書き方になっています。


import java.util.Date;   // Dateクラスを使うための一行

public class CurrentDateExample {
    public static void main(String[] args) {
        Date now = new Date();                     // 今この瞬間の日時を表す
        System.out.println("現在の日時:" + now.toString()); // 文字に変換して表示
    }
}

このサンプルを実行すると、プログラムを動かしたタイミングの日時がそのまま表示されます。


現在の日時:Thu Sep 04 14:30:21 JST 2025

英語の曜日や「JST」といった文字が出てきますが、これはコンピュータが内部的に持っている日付・時刻の情報を、読みやすい形に変換したものです。同じソースコードでも、実行した日や時間が変われば表示される日時も変わります。つまり、このコードは「そのときどきの現在日時を確認するための、いちばんシンプルな書き方」として覚えておくと便利です。

開発の現場でも「処理がいつ実行されたのかをログに残したい」「画面に今の時間を簡単に表示したい」といった用途で、まずはこのパターンからスタートすることが多いです。細かい書式の調整や時間の計算などは次のステップになりますので、ここでは「Dateクラスを使えば簡単に現在の日時を取り出せる」という感覚をつかんでおきましょう。

3. Dateクラスの主なメソッド

3. Dateクラスの主なメソッド
3. Dateクラスの主なメソッド

Dateクラスには、いくつかの便利なメソッドがあります。ただし、いくつかは古く、現在は非推奨になっているものもあります。ここでは使いやすいものを紹介します。

  • getTime():1970年1月1日からのミリ秒を取得
  • before(Date date):指定した日時より前かを判定
  • after(Date date):指定した日時より後かを判定
  • equals(Date date):日時が同じかを判定

import java.util.Date;

public class DateCompareExample {
    public static void main(String[] args) throws InterruptedException {
        Date first = new Date();
        Thread.sleep(1000); // 1秒待つ
        Date second = new Date();

        System.out.println("first.before(second): " + first.before(second));
        System.out.println("first.after(second): " + first.after(second));
    }
}

first.before(second): true
first.after(second): false

4. DateのgetTimeでミリ秒を取得する

4. DateのgetTimeでミリ秒を取得する
4. DateのgetTimeでミリ秒を取得する

getTime()メソッドは、エポック(1970年1月1日午前0時)からの経過ミリ秒数を返します。これを使うと、タイムスタンプとして日時を扱えます。


import java.util.Date;

public class TimeStampExample {
    public static void main(String[] args) {
        Date now = new Date();
        long timestamp = now.getTime();
        System.out.println("タイムスタンプ:" + timestamp);
    }
}

タイムスタンプ:1756980621123

この値を使えば、データベースへの保存や、時系列データのソートなどにも応用できます。

5. Dateのbefore・afterメソッドで日付比較

5. Dateのbefore・afterメソッドで日付比較
5. Dateのbefore・afterメソッドで日付比較

beforeafterメソッドは、他のDateオブジェクトと比較して「前」か「後」かを判定するのに使います。例えばログイン履歴や更新日時の比較に活用できます。


Date loginTime = new Date();
Thread.sleep(2000);
Date currentTime = new Date();

if (loginTime.before(currentTime)) {
    System.out.println("ログインは現在より前です。");
}

ログインは現在より前です。

6. Dateクラスの代わりに使われる新しい日付API

6. Dateクラスの代わりに使われる新しい日付API
6. Dateクラスの代わりに使われる新しい日付API

Java 8以降では、java.timeパッケージが導入され、LocalDateLocalDateTimeなど、より安全で直感的なクラスが使えるようになりました。

ですが、古いライブラリやシステムではDateがまだ使われていることもあるため、知っておくことは重要です。


import java.time.LocalDateTime;

public class ModernDateExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println("現在日時(モダンAPI):" + now);
    }
}

7. java.util.Dateをjava.timeに変換する方法

7. java.util.Dateをjava.timeに変換する方法
7. java.util.Dateをjava.timeに変換する方法

旧APIと新APIを併用する場面では、変換が必要になることもあります。DateからLocalDateTimeへ変換するには、次のようにします。


import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

public class DateConversionExample {
    public static void main(String[] args) {
        Date oldDate = new Date();
        LocalDateTime newDate = oldDate.toInstant()
                                        .atZone(ZoneId.systemDefault())
                                        .toLocalDateTime();
        System.out.println("変換後の日時:" + newDate);
    }
}

8. JavaのDateクラスはいつ使うべき?

8. JavaのDateクラスはいつ使うべき?
8. JavaのDateクラスはいつ使うべき?

現在ではjava.timeパッケージの方が推奨されていますが、Dateクラスは次のような場面で使われます。

  • 古いライブラリやAPIとの連携
  • ログ出力やデバッグ時の簡易的な時間表示
  • Java入門者が時間の概念を学ぶ際の最初の一歩

Javaの学習を始めたばかりの方にとって、Dateクラスはシンプルでわかりやすいので、入門としてはおすすめです。

まとめ

まとめ
まとめ

JavaのDateクラスは、現在の日付と時刻の取得、日時の比較、タイムスタンプの生成など、日付操作の基礎を身につけるために非常に役立つクラスです。とくに初心者にとって、オブジェクトとして「日付」を扱う感覚を理解するための第一歩として重要で、ログ管理や簡易的な時間処理にも使われています。近年ではjava.timeパッケージが主流になっているものの、既存のシステムや古いライブラリではDateクラスが多く使用されているため、その動作や特徴を知っておくことは長期的にも大きなメリットとなります。

また、getTime()を用いたミリ秒の取得、beforeafterによる日時比較など、実務でも基本となる処理が多く含まれているため、理解しておくと幅広い場面で応用できます。さらに、Java8以降のモダンAPIであるLocalDateTimeZoneIdと併用する機会も増えており、Dateから新APIへの変換方法を知っておくことでより柔軟な日付処理が可能になります。

下記では学んだ内容を振り返りながら、簡単なサンプルコードとともに再確認できるようまとめています。繰り返し読み返すことで、Javaの日付処理をより深く理解できるようになります。

サンプルプログラムで理解するDateクラスの基本

ここでは、Dateクラスの使い方を整理するために、記事内と同じようなコード例を用いて具体的に動作を確認します。


import java.util.Date;
import java.time.LocalDateTime;
import java.time.ZoneId;

public class SummaryDateExample {
    public static void main(String[] args) throws InterruptedException {
        Date now = new Date();
        System.out.println("現在の日時:" + now);

        long time = now.getTime();
        System.out.println("ミリ秒:" + time);

        Thread.sleep(1500);
        Date later = new Date();
        System.out.println("比較結果:" + now.before(later));

        LocalDateTime converted =
                now.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        System.out.println("変換後:" + converted);
    }
}
    

Dateクラスとjava.timeの組み合わせによって、開発の幅が広がることがわかります。特にタイムゾーンを明示して変換する方法は、国際的なアプリケーションでも重要な考え方となり、Dateクラスの理解が新しいAPIの理解にもつながります。

先生と生徒の振り返り会話

生徒

「今日の学習で、Dateクラスがどんな場面で使われているのかよく分かりました!」

先生

「そうですね。特に基本的な日時取得や比較は今でも多くのシステムで使われていますよ。」

生徒

beforeafterが自然な感覚で使えるのが嬉しいです。あと、ミリ秒の取得も便利ですね。」

先生

「そのとおり。ミリ秒はログ管理や処理時間の計測にも役立ちます。さらに新しい日付APIへの変換も覚えておけば、より柔軟に開発できます。」

生徒

「Dateクラスは古いと聞いていましたが、完全に不要になるわけではないんですね。」

先生

「その通りです。レガシーなシステムにも触れられるように、しっかり理解しておくと強みになりますよ。」

生徒

「今日のまとめのおかげで、より深く理解できました!ありがとうございます。」

先生

「またいつでも質問してくださいね。次はjava.time APIも詳しく学んでいきましょう。」

カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法