【Java入門】Calendarの使い方(set)

50種類以上のIT教材を無料で使える!
0円から学習できるオンラインITスクール「侍テラコヤ」
→さっそく登録する

Javaには日付の処理を行うCalendarクラスがあります。

「Calendarのsetメソッドについて知りたい」
「Calendarのsetメソッドの使い方を知りたい」
「setメソッドの応用的な使い方を知りたい」
「GregorianCalendarの使い方を知りたい」

今回は、そんな悩みを解決するために、Calendarクラスのsetメソッドの使い方を、わかりやすく解説します!

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

setとは

Calendarクラスのsetメソッドは、カレンダーの時刻や日付などの要素を設定するときに使用します。

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

public void set(int field, int value)

field:指定されたフィールドにCalendarクラスの定数などをセットします。(YEAR、MONTH、DATE、HOUR、MINUTEなど)


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

setの基本的な使い方

以下にCalendarクラスのsetメソッドの基本的な使い方を記述します。

import java.util.Calendar;

public class Main {
    public static void main(String[] args) throws Exception {

        // 基本的な使い方 年を2017年に設定する
        Calendar cl = Calendar.getInstance();
        cl.set(Calendar.YEAR, 2017);
        System.out.println(cl.getTime());
    }
}
実行結果
Mon Mar 27 01:18:09 UTC 2017

サンプルではsetメソッドを使用して、第1引数のフィールドにCalendarクラスの定数YEARを指定して、第2引数の値に2017を指定しています。

実行結果からわかるように、2017年の現在時刻が出力されています。もし、過去の年を指定した場合、過去の年の現在の日付と時間が出力されます。

応用的な使い方

前述したとおりsetメソッドを使用すれば、年月日を取得することができます。
以下にsetメソッドを使用した、さまざまな年月日の取得方法を記述します。

import java.util.Calendar;

public class Main {
    public static void main(String[] args) throws Exception {

        Calendar cl = Calendar.getInstance();
        
        // Calendar.MONTH(月)指定
        cl.set(Calendar.MONTH, 2);
        System.out.println(cl.getTime());
        
        // Calendar.DATE(日)指定
        cl.set(Calendar.DATE, 12);
        System.out.println(cl.getTime());
        
        // Calendar.HOUR(時)指定
        cl.set(Calendar.HOUR, 12);
        System.out.println(cl.getTime());
        
        
        // 年月日を設定する
        cl.set(2017, 03, 25);
        System.out.println(cl.getTime());

        // 日時を年月日時分秒で設定
        cl.set(2017, 3, 25, 13, 30, 50);
        System.out.println(cl.getTime());
    }
}
実行結果
Mon Mar 27 01:31:53 UTC 2017
Sun Mar 12 01:31:53 UTC 2017
Sun Mar 12 12:31:53 UTC 2017
Tue Apr 25 12:31:53 UTC 2017
Tue Apr 25 13:30:50 UTC 2017

サンプルではsetメソッドを使用して、月、日、時、年月日、年月日時分秒でそれぞれ指定しています。
このようにsetメソッドを使用すれば、さまざまな日付の単位を指定することが可能です。

注意点として、月指定時に2月を指定しているにもかかわらず、実行結果ではMar(3月)が出力されています。
これは、CalendarクラスやDateクラスは月を0から始めるため、例えば1月で設定したい場合は、0を指定しなければいけません。


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

GregorianCalendarの使い方

GregorianCalendarクラスは、世界標準のグレゴリオ暦で日時を管理するクラスです。
通常はCalendarのgetInstanceメソッドを使用しますが、GregorianCalendarクラスでも同様に日付を取得することができます。

以下にGregorianCalendarクラスを使用した日付の取得方法を記述します。

import java.util.*;
 
public class Main {
    public static void main(String[] args) throws Exception {
 
        GregorianCalendar gc  = new GregorianCalendar(2017,3,1);
        Date date = gc.getTime();
        System.out.println(date);
    }
}
実行結果
Sat Apr 01 00:00:00 UTC 2017

Calendarについてもっと詳しく知りたい方へ

Calendarのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここでは、Calendarクラスのsetメソッドの基本や応用的な使い方、GregorianCalendarクラスの使い方などを説明しました。

日付を扱う処理は、さまざまな場面で使用することがあると思います。

もし、Calendarクラスのsetメソッドの使用方法を忘れてしまったら、この記事を思い出してくださいね!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

侍テック編集部

株式会社SAMURAI

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

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close