カテゴリ: Java 更新日: 2026/01/21
PR
独学でJavaを学んでいる方向け
「実務レベルに到達できるか不安」「1人だと詰まることが多い」場合は、 実践重視で学べる環境を一度確認しておくのも一つの手です。
EBAエデュケーション |学習内容・サポートを見る

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クラスを使えば簡単に現在の日時を取り出せる」という感覚をつかんでおきましょう。

PR

将来を見据えて、+αのスキルを身につけたい方へ

JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。

AIを学ぶならアイデミープレミアム

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

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

Dateクラスには、現在の時刻を扱ったり、別の日時と比較したりするためのメソッドがいくつか用意されています。「難しそう」と感じるかもしれませんが、基本的なメソッドだけでも十分使いこなせるようになります。ここでは、初心者の方でも理解しやすい代表的なメソッドを取り上げて、ひとつずつ役割を見ていきます。

  • getTime():1970年1月1日(エポック)から現在までの経過時間をミリ秒で取得する
  • before(Date date):自分の日時が、指定した日時より前かどうかを判定する
  • after(Date date):自分の日時が、指定した日時より後かどうかを判定する
  • equals(Date date):2つの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();      // 1秒後の日時を記録

        System.out.println("first.before(second): " + first.before(second)); // 前かどうか
        System.out.println("first.after(second):  " + first.after(second));  // 後かどうか
        System.out.println("first.equals(second): " + first.equals(second)); // 同じかどうか
    }
}

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

このように、1秒の差を作って比較するだけでも、メソッドの動きがとてもよくわかります。とくにbeforeafterは「時間の前後関係をチェックする」という直感的でわかりやすい動作をするため、日付比較の入門としてぴったりです。まずはこのサンプルを実行し、表示結果がどのように変化するか試しながら理解すると良いでしょう。

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も詳しく学んでいきましょう。」

Java Silver SE17(1Z0-825)の演習量を重視したい人には、 定番の問題集がこちらです。

徹底攻略 Java SE 17 Silver 問題集をAmazonで見る

※ Amazonアソシエイト・プログラムを利用しています

カテゴリの一覧へ
新着記事
PR

JavaやLinuxの検証環境に
低コストで使えるVPS

JavaのVectorクラスの使い方を完全ガイド!初心者でもわかるコレクションの基本
Spring Bootのディレクトリ構成を完全ガイド!初心者向けにjava・resources・static・templatesの役割を解説
Spring Boot + IntelliJ IDEAの始め方を完全ガイド!JDK設定・起動構成・デバッグまで解説
Gradle vs Maven どっちを選ぶ?Spring Bootの依存管理・ビルド設定の基本
PR 未経験からITエンジニアを目指す方へ

Javaを学んでいるけど、「このまま未経験で就職できるか不安」という20代向け。 学歴不問・無料サポートの就職支援という選択肢があります。

Tamesy |無料で面談予約
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得
No.3
Java&Spring記事人気No3
JavaのIntegerクラスparseIntメソッド完全ガイド!初心者でもわかる文字列から数値変換
No.4
Java&Spring記事人気No4
JavaのEnumクラスのordinalメソッドを徹底解説!初心者でもわかる列挙型の順序番号
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.7
Java&Spring記事人気No7
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.8
Java&Spring記事人気No8
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
PR

ローカルPCに依存しない開発環境という選択肢

Java・Linuxの検証や学習環境を、クラウド上ですぐに用意できます。

Java入門

Javaの基礎を体系的に学びたい場合は、文法だけでなく 「なぜそう書くのか」まで丁寧に解説されているため、 初心者でも理解しやすい定番の1冊です。

スッキリわかるJava入門 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Java実践

ジェネリクス、enum、シールクラスなどの型設計から、 関数型プログラミング(ラムダ式・Stream API)、 JVM制御やリフレクション、外部ライブラリの活用までを扱っており、 「Javaを使えるレベル」へ進むための内容が網羅されています。

スッキリわかるJava入門 実践編 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Spring入門

Spring Frameworkの全体像から、 Webアプリ開発で必要となる主要機能までを 体系的に解説している定番の入門書です。

Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

※ 紙の書籍・電子書籍どちらでも購入できます

PR 実務経験のあるエンジニア向け

Javaなどの実務経験があり、次のキャリアを検討している方向け。 IT・ゲーム業界に特化した転職支援サービスという選択肢もあります。

転職ボックス |IT・ゲーム業界専門