今回はJavaでのCalendarを使った日時の設定を解説します。
現場でよく使われているJava7までの基本的な日時の設定方法について説明します。
Java8以降ではLocalDateTimeに日付の扱いが置き換わっていますので、今回は説明は割愛します。
LocalDateTimeについては、また後日解説記事を書くと思います。
Calendarクラスでの日時の取得と設定
Java7では日時の取り扱いにはCalendarクラスで行います。
今回はその中でも日時の取得と設定に焦点を絞りたいと思います。
Java7までで日時を表示する場合はDateクラスが使われているため、日時の文字列から取得して日にちを変更するには、
String→Date→Calendarの変換が必要となります。
文字列とDateの変換はこちら。
日時の取得
Calendarクラスのgetメソッドを使用します。
引数に日時を表す定数を渡してやるとint型で返ってきます。
月だけ0からスタートすることに注意してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Calendar calendar = Calendar.getInstance(); System.out.println("年:" + calendar.get(Calendar.YEAR)); System.out.println("月:" + calendar.get(Calendar.MONTH)); System.out.println("日:" + calendar.get(Calendar.DATE)); System.out.println("時:" + calendar.get(Calendar.HOUR)); System.out.println("分:" + calendar.get(Calendar.MINUTE)); System.out.println("秒:" + calendar.get(Calendar.SECOND)); -> 年:2018 月:2 日:22 時:13 分:00 秒:00 |
日時の取得
Calendarクラスのsetメソッドを使用します。
第一引数に日時を表す定数、第二引数に値を設定します。
月に13以上の値や日に31より大きい値を設定すると繰り上がってしますので注意してください。
例は2018年3月22日の日付に32を設定しています。
1 2 3 4 5 6 7 8 9 10 11 |
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DATE,32); System.out.println("年:" + calendar.get(Calendar.YEAR)); System.out.println("月:" + calendar.get(Calendar.MONTH)); System.out.println("日:" + calendar.get(Calendar.DATE)); -> 年:2019 月:3 日:1 |
以上でCalendarクラスでの日時の取得と設定の解説は終わりです。
そのうち現場でよく使われる、日付の編集の仕方やLocalDateTimeの使い方について解説する記事を書きます。