【Java】Dateクラスで日付を扱う方法を5つのパターン別に解説

Javaで日付を扱うにはどうしたらいいの?
Dateクラスで日付を扱う方法が知りたい

JavaではDateクラスを使用して、日付や日時を扱うことができます。しかし、そもそも、Dateクラスの使い方がいまいちわからなかったり、日付の扱い方がわからない方も多いのではないでしょうか?

そこで今回はDateクラスを使用して、日付を扱う方法について、パターン別に解説していきます。

なお、Javaの記事については、こちらにまとめています。

JavaのDateとは

Dateクラスは日時を取得したり、日時を計算するときに使用する日付型のクラスです。

Dateクラスを使用するには「java.util.Date」をインポートする必要があります。

Dateクラスは、以下のようにクラスのオブジェクトを生成します。

Date 変数名 = new Date();

new演算子使用してインスタンスを生成した時点で、Dateクラスのオブジェクトには現在の日時が返されます。


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

Dataの使い方

基本的な使い方

ここからは、実際にDateクラスの使い方を見ていきましょう。

以下にDateクラスのオブジェクトを生成して、現在の日付を出力する方法を記述します。

import java.util.Date;

public class Main {
    public static void main(String[] args) {
        
        //Dateを生成する
        Date date = new Date();
        
        //現在の日時を出力する
        System.out.println(date.toString());
        
    }
}
実行結果
Sun Jun 11 08:43:53 JST 2017

サンプルではnew演算子でDateクラスのオブジェクトを生成後、オブジェクトをtoStringメソッドで文字列型に変換して出力しています。

フォーマットを指定する

前述したようにDateクラスを使用すれば、日付を取得することができますが、取得した結果が「Sun Jun 11 08:43:53 JST 2017」のように表示されて、少し分かり辛いですよね…。

そこで、取得した日付のフォーマットを指定して、日付を見やすく表示するために、SimpleDateFormatクラスが用意されています。

SimpleDateFormatクラスを使用するためには「java.text.SimpleDateFormat」をインポートする必要があります。

SimpleDateFormatクラスを使用するためには、以下のようにクラスのオブジェクトを生成します。

SimpleDateFormat 変数名 = new SimpleDateFormat("フォーマット");

インスタンスの引数には、"yyyy/MM/dd"のように日付のフォーマットを指定します。

そんな日付のフォーマット指定の詳細については、以下の記事で詳しく解説しています!

【Java入門】SimpleDateFormatで日付フォーマットの設定
更新日:2023年3月21日

日時を加算する

Date型の日時を指定した値で加算するには、Calendarクラスのaddメソッドを使用します。

addメソッドは以下のように記述します。

calendar.add(Calendar.MONTH, 3);

第一引数には、カレンダークラスの定数YEAR、MONTH、DATEなどを指定し、第二引数には加算する値を指定します。

そんなDate型の日時を加算する方法については、以下の記事で詳しく解説しています。

日付を比較する

日付同士を比較するためにはDateクラスのcompareToメソッドを使用します。

日付の比較は、To-Doリストなどのアプリケーションで時間になると通知したり、ある期間だけの売上を表示したいときなどによく使われます。

compareToメソッドは、以下のように記述します。

Date1.compareTo(Date2);

compareToメソッドは、引数に比較対象のDateクラスを指定することにより、日付の比較を行います。

そんな、日付を比較する方法については、以下の記事で詳しく解説しています。

Date⇔Stringの変換

String型と日付型(Date型)はそれぞれの型に変換することが可能です。文字列の日付をDate型に変換するには、SimpleDateFormatを使って、文字列のフォーマットを指定する必要があります。

文字列が"2017/6/10"なら、日付のフォーマットは"yyyy/MM/dd"となります。また、日付の文字列に誤りがあるとParseExceptionの例外が発生しますので注意しましょう。

Date型をString型に変換するには、SimpleDateFormatクラスを使用し、変換したい日付のフォーマットを指定して、formatメソッドで変換します。

そんなDate型⇔String型の相互変換については、以下の記事で詳しく解説しています!

【Java入門】DateとCalendarの使い方・変換方法まとめ
更新日:2023年3月21日

まとめ

ここでは、Data型の基本的な使い方や、日付を加算する方法、日付のフォーマットを指定する方法や、比較、String型への相互変換の方法などについて紹介しました。

JavaはDateクラスやCalendarクラスを使用して、さままざな日付処理を行うことができますので、ぜひ覚えておきましょう。

もし、Data型の使い方を忘れてしまったら、この記事を思い出してくださいね。

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

侍エンジニア編集部

株式会社SAMURAI

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close