2017.05.11
現在日時の各要素を取得
日時を操作できるCalendarクラス
ここでは、現在の日付と時刻を取得して、各要素(年、月、日、時、分、秒、曜日)毎に取得する方法を紹介しています。
具体的には、以下のメソッドを使って現在日時の各要素を取得します。
Calendar.getInstanceメソッド
public static Calendar getInstance()
・デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得 パラメータ なし 戻り値 デフォルトロケールを持つデフォルトタイムゾーンの現在時刻に基づいたCalendar
Calendar.getメソッド
public int Calendar get( int field )
・指定されたカレンダフィールドの値を返す パラメータ field : フィールド 戻り値 カレンダフィールド値
型 | フィールド | 概要 |
---|---|---|
static int | ALL_STYLES | 「January」や「Jan」などのすべてのスタイルで名前を示す、getDisplayNames のスタイル指示子 |
static int | AM | 真夜中から正午の前までの時間を示す AM_PM フィールドの値 |
static int | AM_PM | get および set のためのフィールド値で、HOUR が正午より前であるかあとであるかを示す |
static int | APRIL | グレゴリオ暦とユリウス暦の年の 4 番目の月を示す MONTH フィールドの値 |
protected boolean | areFieldsSet | fields[] が現在設定されている時刻と同期をとっている場合は true |
static int | AUGUST | グレゴリオ暦とユリウス暦の年の 8 番目の月を示す MONTH フィールドの値 |
static int | DATE | get および set のためのフィールド値で、月の日を示す |
static int | DAY_OF_MONTH | get および set のためのフィールド値で、月の日を示す |
static int | DAY_OF_WEEK | get および set のためのフィールド値で、曜日を表す |
static int | DAY_OF_WEEK_IN_MONTH | get および set のためのフィールド値で、現在の月の何度目の曜日かを示す |
static int | DAY_OF_YEAR | get および set のためのフィールド値で、現在の年の何日目かを示す |
static int | DECEMBER | グレゴリオ暦とユリウス暦の年の 12 番目の月を示す MONTH フィールドの値 |
static int | DST_OFFSET | get および set のためのフィールド値 |
static int | ERA | get および set のためのフィールド値で、ユリウス暦の AD または BC などの年代を示す |
static int | FEBRUARY | グレゴリオ暦とユリウス暦の年の 2 番目の月を示す MONTH フィールドの値 |
static int | FIELD_COUNT | get および set によって識別される重複しないフィールドの数を示す |
protected int[] | fields | このカレンダで現在設定されている時刻に対するカレンダフィールド値 |
static int | FRIDAY | 金曜日を示す DAY_OF_WEEK フィールドの値 |
static int | HOUR | get および set のためのフィールド値で、午前または午後の何時かを示す |
static int | HOUR_OF_DAY | get および set のためのフィールド値で、時刻を示す |
protected boolean[] | isSet | 指定されたカレンダフィールドがカレンダで設定されているかどうかを示すフラグ |
protected boolean | isTimeSet | time の値が有効である場合は true |
static int | JANUARY | グレゴリオ暦とユリウス暦の年の最初の月を示す MONTH フィールドの値 |
static int | JULY | グレゴリオ暦とユリウス暦の年の 7 番目の月を示す MONTH フィールドの値 |
static int | JUNE | グレゴリオ暦とユリウス暦の年の 6 番目の月を示す MONTH フィールドの値 |
static int | LONG | 「January」のような長い名前を示す getDisplayName および getDisplayNames のスタイル指示子 |
static int | MARCH | グレゴリオ暦とユリウス暦の年の 3 番目の月を示す MONTH フィールドの値 |
static int | MAY | グレゴリオ暦とユリウス暦の年の 5 番目の月を示す MONTH フィールドの値 |
static int | MILLISECOND | get および set のためのフィールド値で、ミリ秒を示す |
static int | MINUTE | get および set のためのフィールド値で、分を示す |
static int | MONDAY | 月曜日を示す DAY_OF_WEEK フィールドの値 |
static int | MONTH | get および set のための、月を示すフィールド値 |
static int | NOVEMBER | グレゴリオ暦とユリウス暦の年の 11 番目の月を示す MONTH フィールドの値 |
static int | OCTOBER | グレゴリオ暦とユリウス暦の年の 10 番目の月を示す MONTH フィールドの値 |
static int | PM | 正午から真夜中の前までの時間を示す AM_PM フィールドの値 |
static int | SATURDAY | 土曜日を示す DAY_OF_WEEK フィールドの値 |
static int | SECOND | get および set のためのフィールド値で、秒を示す |
static int | SEPTEMBER | グレゴリオ暦とユリウス暦の年の 9 番目の月を示す MONTH フィールドの値 |
static int | SHORT | 「Jan」のような短い名前を示す getDisplayName および getDisplayNames のスタイル指示子です |
static int | SUNDAY | 日曜日を示す DAY_OF_WEEK フィールドの値 |
static int | THURSDAY | 木曜日を示す DAY_OF_WEEK フィールドの値 |
protected long | time | このカレンダで現在設定されている時刻 |
static int | TUESDAY | 火曜日を示す DAY_OF_WEEK フィールドの値 |
static int | UNDECIMBER | 13 番目の月を示す MONTH フィールドの値 |
static int | WEDNESDAY | 水曜日を示す DAY_OF_WEEK フィールドの値 |
static int | WEEK_OF_MONTH | get および set のためのフィールド値で、現在の月の何週目かを示す |
static int | WEEK_OF_YEAR | get および set のためのフィールド値で、現在の年の何週目かを示す |
static int | YEAR | get および set のための、年を示すフィールド値 |
static int | ZONE_OFFSET | get および set のためのフィールド値 |
Javaソースコード
以下は、Calendarクラスを使った、現在の年月日を表示するプログラムです。
CalendarSample1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019
import java.util.Calendar; public class CalendarSample1 { public static void main(String[] args) { int year, month, day; // 年月日 // オブジェクトを取得 Calendar datenow = Calendar.getInstance(); // 年 year = datenow.get( datenow.YEAR ); // 月 month = datenow.get( datenow.MONTH ) + 1; // 日 day = datenow.get( datenow.DATE ); // 結果の表示 System.out.println( year + "年" + month + "月" + day + "日" ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis CalendarSample1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac CalendarSample1.java
実行
C:\talavax\javasample>java CalendarSample1
実行結果
2017年5月11日
実行時の年月日を表示します。
Javaソースコードの解説
ここからは、このソースコードを上から順番に解説していきます。
001
import java.util.Calendar;
003
public class CalendarSample1 {
クラス名を、CalendarSample1としています。
004
public static void main(String[] args) {
このmainメソッドからプログラムを実行します。
005
int year, month, day; // 年月日
007 008
// オブジェクトを取得
Calendar datenow = Calendar.getInstance();
009 010 011 012 013 014
// 年 year = datenow.get( datenow.YEAR ); // 月 month = datenow.get( datenow.MONTH ) + 1; // 日 day = datenow.get( datenow.DATE );
Calendarクラスのgetメソッドで、年/月/日を取得しています。getメソッドに与えるカレンダフィールドの値で、取得する値を変えることができます。このサンプルプログラムでは、YEAR/MONTH/DATEで年月日を取得しています。
12行目で取得した月の値に1を足しているのは、MONTHで取得する値の範囲が0~11の値を返すためです。1~12月にするために1を足しています。
016 017
// 結果の表示 System.out.println( year + "年" + month + "月" + day + "日" );
結果を表示しています。
年月日以外の要素、時間はHOUR、分はMINUTE、秒はSECONDで取得することができます。
以上です。