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

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

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

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

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で日付フォーマットの設定
更新日 : 2019年5月28日

日時を加算する

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の使い方・変換方法まとめ
更新日 : 2019年10月16日

まとめ

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

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

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

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

侍ブログ編集部

侍ブログ編集部

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説