java.util
クラス Calendar

java.lang.Object
  |
  +--java.util.Calendar

public abstract class Calendar
extends Object

Calendar は、YEARMONTHDAY などの一連の整数フィールドで日付の取得と設定を行うための抽象クラスです。Date オブジェクトは、特定の時点を表し、ミリ秒の精度を持っています。Date クラスについては、Date を参照してください。

Calendar のサブクラスは、特定のカレンダシステムの規則に従って Date を解釈します。

ロケールに依存する他のクラスと同じように、Calendar では、この種の一般に役立つオブジェクトを得るためのクラスメソッド getInstance が提供されます。

 Calendar rightNow = Calendar.getInstance();

Calendar オブジェクトでは、特定の言語およびカレンダスタイル (日本のグレゴリオ暦、日本の旧暦など) に対して、日付と時刻のフォーマットを行うときに必要なすべての時間フィールド値を生成できます。

複数の時間フィールドから Date を計算する場合、年と月のみで日がないなど、Date を計算するための情報が不足している場合があります。

情報が不十分である - このカレンダでは、デフォルト情報を使って不足している情報を補います。これは、カレンダによって異なります。グレゴリオ暦の場合、フィールドのデフォルト値は、その期間の初めの値です。つまり、YEAR = 1970、MONTH = JANUARY、DATE = 1 などです。

情報に一貫性がない - J2SE のカレンダでは、フィールドの設定に一貫性がない場合があります。ただし、このサブセットでは DAY_OF_WEEK フィールドを設定できず、他の J2SE Calendar フィールドのサブセットだけが組み込まれます。このため、一貫したデータを設定することはできません。

注: 深夜 0 時が属する日の解釈があいまいになる場合がありますが、深夜 0 時は翌日に属すると解釈します。
1969 年 12 月 31 日の 23:59 < 1970 年 1 月 1 日の 00:00
午後 12:00 は正午、午前 12:00 は深夜0時
1 月 1 日の午後 11:59 < 1 月 2 日の午前 12:00 < 1 月 2 日の午前 12:01
3 月 10 日の午前 11:59 < 3 月 10 日の午後 12:00 < 3 月 10 日の午後 12:01
24:00 以上の時刻表示は無効です。12 時間表記モードでは、12 時を超える時刻は無効です。時刻を設定しても日付は変更されません。

同じ時刻を 12 時間表記モードまたは 24 時間表記モードで複数回入力すると、同じ時刻であることは、入力した値ではなく実際の時刻で確認されます。

このクラスは、J2SE Calendar クラスの J2ME のサブセットです。このクラスのサイズを削減するために、多くのメソッドおよび変数は取り除かれ、その他のメソッドは簡略化されました。

関連項目:
TimeZone

フィールドの概要
static int AM
          真夜中から正午の前までの時間を示す AM_PM フィールドの値です。
static int AM_PM
          get および set のためのフィールド値で、HOUR が正午より前であるか後であるかを示します。
static int APRIL
          4 番目の月を示す MONTH フィールドの値です。
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 DECEMBER
          12 番目の月を示す MONTH フィールドの値です。
static int FEBRUARY
          2 番目の月を示す MONTH フィールドの値です。
static int FRIDAY
          金曜日を示す DAY_OF_WEEK フィールドの値です。
static int HOUR
          get および set のためのフィールド値で、午前または午後の何時かを示します。
static int HOUR_OF_DAY
          get および set のためのフィールド値で、時刻を示します。
static int JANUARY
          年の最初の月を示す MONTH フィールドの値です。
static int JULY
          7 番目の月を示す MONTH フィールドの値です。
static int JUNE
          6 番目の月を示す MONTH フィールドの値です。
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 SUNDAY
          日曜日を示す DAY_OF_WEEK フィールドの値です。
static int THURSDAY
          木曜日を示す DAY_OF_WEEK フィールドの値です。
static int TUESDAY
          火曜日を示す DAY_OF_WEEK フィールドの値です。
static int WEDNESDAY
          水曜日を示す DAY_OF_WEEK フィールドの値です。
static int YEAR
          get および set のためのフィールド値で、年を表します。
 
コンストラクタの概要
protected Calendar()
          デフォルトのタイムゾーンおよびデフォルトのロケールを使用して Calendar を作成します。
 
メソッドの概要
 boolean after(Object when)
          時間フィールドレコードを比較します。
 boolean before(Object when)
          時間フィールドレコードを比較します。
 boolean equals(Object obj)
          指定されたオブジェクトとカレンダを比較します。
 int get(int field)
          指定された時間フィールドの値を取得します。
static Calendar getInstance()
          デフォルトのタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。
static Calendar getInstance(TimeZone zone)
          指定されたタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。
 Date getTime()
          Calendar の現在時刻を取得します。
protected  long getTimeInMillis()
          この Calendar の現在の時刻を、グリニッジ標準時 1970 年 1 月 1 日 0:00:00 (エポック) からの経過ミリ秒数で表した long 値として取得します。
 TimeZone getTimeZone()
          タイムゾーンを取得します。
 void set(int field, int value)
          時間フィールドに、指定された値を設定します。
 void setTime(Date date)
          Calendar の現在の時刻を、指定された Date にします。
protected  void setTimeInMillis(long millis)
          Calendar の現在時刻を、指定された long 値から設定します。
 void setTimeZone(TimeZone value)
          指定されたタイムゾーン値を使用してタイムゾーンを設定します。
 
クラス java.lang.Object から継承したメソッド
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

YEAR

public static final int YEAR
get および set のためのフィールド値で、年を表します。これはカレンダ固有の値です。

MONTH

public static final int MONTH
get および set のためのフィールド値で、月を表します。これはカレンダ固有の値です。

DATE

public static final int DATE
get および set のためのフィールド値で、日を表します。これは DAY_OF_MONTH と同じになります。
関連項目:
DAY_OF_MONTH

DAY_OF_MONTH

public static final int DAY_OF_MONTH
get および set のためのフィールド値で、日を表します。これは DATE と同じになります。
関連項目:
DATE

DAY_OF_WEEK

public static final int DAY_OF_WEEK
get および set のためのフィールド値で、曜日を表します。

AM_PM

public static final int AM_PM
get および set のためのフィールド値で、HOUR が正午より前であるか後であるかを示します。たとえば、10:04:15.250 PM の場合、AM_PMPM になります。
関連項目:
AM, PM, HOUR

HOUR

public static final int HOUR
get および set のためのフィールド値で、午前または午後の何時かを示します。HOUR は 12 時間制です。たとえば、10:04:15.250 PM の場合、HOUR は 10 になります。
関連項目:
AM_PM, HOUR_OF_DAY

HOUR_OF_DAY

public static final int HOUR_OF_DAY
get および set のためのフィールド値で、時刻を示します。HOUR_OF_DAY は 24 時間制です。たとえば、10:04:15.250 PM の場合、HOUR_OF_DAY は 22 になります。

MINUTE

public static final int MINUTE
get および set のためのフィールド値で、分を示します。たとえば、10:04:15.250 PM の場合、MINUTE は 4 になります。

SECOND

public static final int SECOND
get および set のためのフィールド値で、秒を示します。たとえば、10:04:15.250 PM の場合、SECOND は 15 になります。

MILLISECOND

public static final int MILLISECOND
get および set のためのフィールド値で、ミリ秒を示します。たとえば、10:04:15.250 PM の場合、MILLISECOND は 250 になります。

SUNDAY

public static final int SUNDAY
日曜日を示す DAY_OF_WEEK フィールドの値です。

MONDAY

public static final int MONDAY
月曜日を示す DAY_OF_WEEK フィールドの値です。

TUESDAY

public static final int TUESDAY
火曜日を示す DAY_OF_WEEK フィールドの値です。

WEDNESDAY

public static final int WEDNESDAY
水曜日を示す DAY_OF_WEEK フィールドの値です。

THURSDAY

public static final int THURSDAY
木曜日を示す DAY_OF_WEEK フィールドの値です。

FRIDAY

public static final int FRIDAY
金曜日を示す DAY_OF_WEEK フィールドの値です。

SATURDAY

public static final int SATURDAY
土曜日を示す DAY_OF_WEEK フィールドの値です。

JANUARY

public static final int JANUARY
年の最初の月を示す MONTH フィールドの値です。

FEBRUARY

public static final int FEBRUARY
2 番目の月を示す MONTH フィールドの値です。

MARCH

public static final int MARCH
3 番目の月を示す MONTH フィールドの値です。

APRIL

public static final int APRIL
4 番目の月を示す MONTH フィールドの値です。

MAY

public static final int MAY
5 番目の月を示す MONTH フィールドの値です。

JUNE

public static final int JUNE
6 番目の月を示す MONTH フィールドの値です。

JULY

public static final int JULY
7 番目の月を示す MONTH フィールドの値です。

AUGUST

public static final int AUGUST
8 番目の月を示す MONTH フィールドの値です。

SEPTEMBER

public static final int SEPTEMBER
9 番目の月を示す MONTH フィールドの値です。

OCTOBER

public static final int OCTOBER
10 番目の月を示す MONTH フィールドの値です。

NOVEMBER

public static final int NOVEMBER
11 番目の月を示す MONTH フィールドの値です。

DECEMBER

public static final int DECEMBER
12 番目の月を示す MONTH フィールドの値です。

AM

public static final int AM
真夜中から正午の前までの時間を示す AM_PM フィールドの値です。

PM

public static final int PM
正午から真夜中の前までの時間を示す AM_PM フィールドの値です。
コンストラクタの詳細

Calendar

protected Calendar()
デフォルトのタイムゾーンおよびデフォルトのロケールを使用して Calendar を作成します。
関連項目:
TimeZone.getDefault()
メソッドの詳細

getTime

public final Date getTime()
Calendar の現在時刻を取得します。
戻り値:
現在時刻

setTime

public final void setTime(Date date)
Calendar の現在の時刻を、指定された Date にします。

注: Date(Long.MAX_VALUE) または Date(Long.MIN_VALUE)setTime() を呼び出すと、get() から不正確なフィールド値が生じることがあります。

パラメータ:
date - 指定する Date

getInstance

public static Calendar getInstance()
デフォルトのタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。

getInstance

public static Calendar getInstance(TimeZone zone)
指定されたタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。
パラメータ:
zone - 使用するタイムゾーン
戻り値:
Calendar

getTimeInMillis

protected long getTimeInMillis()
この Calendar の現在の時刻を、グリニッジ標準時 1970 年 1 月 1 日 0:00:00 (エポック) からの経過ミリ秒数で表した long 値として取得します。
戻り値:
エポックからの UTC ミリ秒値で表される現在時刻

setTimeInMillis

protected void setTimeInMillis(long millis)
Calendar の現在時刻を、指定された long 値から設定します。
パラメータ:
millis - エポックからの UTC ミリ秒値で表される新しい時刻

get

public final int get(int field)
指定された時間フィールドの値を取得します。
パラメータ:
field - 指定する時間フィールド
戻り値:
指定された時間フィールドの値

set

public final void set(int field,
                      int value)
時間フィールドに、指定された値を設定します。
パラメータ:
field - 指定する時間フィールド。DAY_OF_WEEK フィールドは設定できないことに注意する必要がある
value - 指定された時間フィールドに設定する値

equals

public boolean equals(Object obj)
指定されたオブジェクトとカレンダを比較します。引数が null でなく、このオブジェクトと同じカレンダを表す Calendar オブジェクトである場合にだけ、結果は true になります。
オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象のオブジェクト
戻り値:
オブジェクトが同じである場合は true、そうでない場合は false

before

public boolean before(Object when)
時間フィールドレコードを比較します。UTC への変換の結果を比較するのと同じことです。
パラメータ:
when - この Calendar と比較される Calendar
戻り値:
この Calendar の現在時刻が Calendar の時刻より前の場合は true、そうでない場合は false

after

public boolean after(Object when)
時間フィールドレコードを比較します。UTC への変換の結果を比較するのと同じことです。
パラメータ:
when - この Calendar と比較される Calendar
戻り値:
この Calendar の現在時刻が Calendar の時刻よりあとの場合は true、そうでない場合は false

setTimeZone

public void setTimeZone(TimeZone value)
指定されたタイムゾーン値を使用してタイムゾーンを設定します。
パラメータ:
value - 指定するタイムゾーン

getTimeZone

public TimeZone getTimeZone()
タイムゾーンを取得します。
戻り値:
カレンダに関連したタイムゾーンオブジェクト