【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

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

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

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

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

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

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

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

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