【Java入門】Calendarクラスの使い方総まとめ

JavaではCalendarクラスを使用して、現在の日時を取得したり、指定したフォーマットで日時を取得、日時の演算など、さまざまな日付処理を行うことが可能です。


【基礎】Calendarクラスとは
【基礎】Calendarクラスの基本的な使い方
【発展】日付のフォーマットを指定する方法
【発展】日付を設定する方法
【発展】日付を計算する方法
【発展】Dateクラス⇔Calendarクラスを変換する方法

今回はそんなCalendarクラスの使い方について、わかりやすく解説します!

Calendarクラスとは

Calendarクラスとは、現在の年月日を取得したり、指定した日時の設定や加算・減算、日時を比較するなど、日時を扱うさまざまな処理が可能なクラスです。

使用するにはimport java.util.Calendarを指定します。

Calendarクラスは、new演算子でオブジェクトを生成するのでなく、getInstanceメソッドをを使用して作成します。

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

Calendar cl = Calendar.getInstance();

getInstanceメソッドは、オブジェクトを生成する度に、現在の年・月・日に初期化された状態でオブジェクトを返します。

Calendarクラスの使い方

ここでは、実際にCalendarクラスの使い方を見ていきましょう

以下のサンプルでは、getメソッドで現在の年・月・日をそれぞれ取得しています。

import java.util.Calendar;

public class CalendarSample {

    public static void main(String[] args) {

        //Calendarクラスのオブジェクトを生成する
        Calendar cl = Calendar.getInstance();
		
        //Calendarクラスの定数を使用して、年・月・日をそれぞれ取得する
        System.out.println("年:" + cl.get(Calendar.YEAR));
        System.out.println("月:" + cl.get(Calendar.MONTH)); 
        System.out.println("日:" + cl.get(Calendar.DATE));
    }
}
実行結果
年:2017
月:5
日:9

サンプルでは、Calendarクラスのオブジェクトclを作成し、clに対してgetメソッドを使用して年・月・日をそれぞれ取得しています。

しかし、月に関しては月またぎの問題で0が1月となります。そのため、紛らわしさを回避するためには、以下のように記述する必要があります。

int month = cl.get(Calendar.MONTH) + 1;
System.out.println("MONTH:" + month);

これで現在の月である6が出力されます。

そんなCalendarクラスの基本的な使い方や、日付を計算する方法などについては、以下の記事で詳しく解説しています。

フォーマットを指定する方法

日付を取得するとき、「yyyy年MM月dd日」「yyyy/MM/dd」など、フォーマットを指定したい場合もあるかと思います。

日付や時刻のフォーマットを指定する場合は、SimpleDateFormatクラスを使用します。

SimpleDateFormatクラスを使用するためには、import java.text.SimpleDateFormatを指定します。

SimpleDateFormatクラスは以下のように記述します。

SimpleDateFormat  sdf = new SimpleDateFormat(String)

SimpleDateFormatクラスを使用して、日付のフォーマットを指定する方法の詳細については、以下の記事で詳しく説明しています!

日付を設定する方法

カレンダーの年・月・日などの要素を指定した値に設定するにはCalendarクラスのsetメソッドを使用します。

Calendarクラスで用意されているYEAR、MONTH、DATEなどの定数を指定して、年・月・日の単位ごとや年月日をまとめて取得することができます。

setメソッドは第一引数のフィールドにCalendarクラスの定数を指定し、第二引数に値を指定します。

public void set(int field,  int value)

Calendarクラスのsetメソッドの使用方法については、以下の記事で詳しく解説しています。

日付を計算する方法

Calendarクラスのオブジェクトが保持している日時に対して、値を指定して加算・減算して日時を取得するには、Calendarクラスのaddメソッドを使用します。

addメソッドは第一引数のフィールドにCalendarクラスの定数を指定し、第二引数に値を指定します。

public void set(int field, int value)

Calendarクラスのaddメソッドの使用方法については、以下の記事で詳しく解説しています。

Date⇔Calendarの変換方法

DateクラスもCalendarクラス同様日付を扱うクラスです。

Calendarクラスは、日付のフォーマットを指定したり、日付や時刻を演算できるのに対して、Dateクラスは1970年1月1日0時からの経過時間を持ち、指定した日付や時刻を取得するときに使用します。

そんなDateクラスとCalendarクラスは、それぞれ取得した値を相互変換することができます。

相互変換の詳しい方法については、以下の記事で解説しています!

まとめ

ここではCalendarクラスの基本的な使い方や、フォーマットを指定する方法、指定した値で日付を演算する方法、Dateクラスとの相互変換の方法などについて紹介しました。

JavaではCalendarクラスを使用してさまざまな日付の処理が可能です。

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

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。