スライドショー

【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

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

ヤマシタ

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