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メソッドの使用方法を忘れてしまったら、この記事を思い出してくださいね!