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

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


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

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

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

目次

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クラスの使い方を忘れてしまったら、この記事を思い出してくださいね。

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次