クラスCalendar

java.lang.Object
java.util.Calendar
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Calendar>
直系の既知のサブクラス:
GregorianCalendar

public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Calendarクラスは、特定の時点とYEARMONTHDAY_OF_MONTHHOURなどのカレンダ・フィールド・セット間の変換、および次週の日付の取得などのカレンダ・フィールド操作を行うための抽象クラスです。 特定のインスタントは、1970年1月1日00:00:00.000 GMT (グレゴリオ暦)を元期とするミリ秒単位のオフセットで表現できます。

このクラスは、パッケージ外部の具象暦体系を実装するための追 メソッドおよびフィールドも提供します。 これらのフィールドおよびメソッドは、protectedとして定義されます。

ロケールに依存するほかのクラスと同じように、Calendarでは、この種の一般に役立つオブジェクトを得るためのクラス・メソッドgetInstanceが提供されます。 CalendargetInstanceメソッドは、Calendarオブジェクトを返しますが、このカレンダ・フィールドは現在の日付と時間に初期化されています。

     Calendar rightNow = Calendar.getInstance();
 

Calendarオブジェクトでは、特定の言語およびカレンダ・スタイル(日本のグレゴリオ暦、日本の旧暦など)に対して、日付と時間のフォーマットを行うときに必要なすべての時間フィールド値を生成できます。 Calendarでは、特定のフィールドとその意味の両方によって返される値の範囲が定義されます。 たとえば、暦体系の最初の月には、すべてのカレンダについて値MONTH == JANUARYがあります。 ほかの値は、ERAなどの具象サブクラスで定義されます。 詳細は、個別のフィールド・ドキュメントおよびサブクラス・ドキュメントを参照してく さい。

カレンダ・フィールド値の取得と設定

カレンダ・フィールド値は、setメソッドを呼び出して設定できます。 Calendar内で設定されたフィールド値はすべて、その時間値(「元期」からのミリ秒)またはカレンダ・フィールドの値を計算する必要が生じるまで解釈されません。 getgetTimeInMillisgetTimeadd、およびrollの呼出しでは、この種の計算が行われます。 特に指定されていないかぎり、パラメータint fieldを含むCalendarメソッドは、指定されたフィールドが(field < 0 || field >= FIELD_COUNT)の範囲外である 合にArrayIndexOutOfBoundsExceptionをスローします。

非厳密性

Calendarは、カレンダ・フィールドを解釈する際、厳密および非厳密の2つのモードを使用します。 非厳密モードの 合、Calendarはそれ自身が生成する値よりも広範なカレンダ・フィールド値を受け入れます。 Calendarが、get()の値を返すためにカレンダ・フィールド値を再計算する際、すべてのカレンダ・フィールドが正規化されます。 たとえば、非厳密なGregorianCalendarは、MONTH == JANUARYDAY_OF_MONTH == 32を2月1日として解釈します。

厳密モードの 合、カレンダ・フィールド内に不一致があると、Calendarは例外をスローします。 たとえば、GregorianCalendarは、DAY_OF_MONTH値として1とその月の長さの間の値を常に生成します。 厳密なGregorianCalendarは、時間およびカレンダ・フィールド値を計算する際、範囲外のフィールド値が設定されていると例外をスローします。

最初の週

Calendar週の最初の日および最初の週の最小日数(1から7)という2つのパラメータを使用して、ロケール固有の週7日が定義されます。 これらの番号は、Calendarが構築されたときのロケール・リソース・データまたはロケール自体から取得されます。 指定されたロケールに"fw"または"rg" 「Unicode拡張」(あるいはその両方)が含まれる 合、それらの拡張に従って週の初日が取得されます。 "fw"と"rg"の両方が指定されている 合、"fw"拡張子の値は、"rg"拡張子の暗黙のものよりも優先されます。 また、これらの値の設定用メソッドによって明示的に指定されることもあります。

WEEK_OF_MONTHフィールドやWEEK_OF_YEARフィールドを設定または取得すると、Calendarでは月または年の最初の週を参照点として決定する必要があります。 月または年の最初の週は、getFirstDayOfWeek()で始まり、その月または年の少なくともgetMinimalDaysInFirstWeek()の日数を含む、もっとも早い7日間として定義されます。 ...、-1、0という番号が付けられた週は最初の週より前にあります。2、3、...という番号が付けられた週はそれより後ろにあります。 get()によって返される正規化された番号付けとは、異なる 合があります。 たとえば、特定のCalendarサブクラスでは、1年の週1の前の週を、前年の週nとして指定することがあります。

カレンダ・フィールドの解決

カレンダ・フィールドから日付および時間を計算する際、計算に必要な情 が不足している(年と月 けで日がないなど)、または情 に一貫性がない 合(たとえば「Tuesday, July 15, 1996 (Gregorian)」と指定されているが、実際にはJuly 15, 1996はMondayであるなど)があります。 Calendarは、次の方法でカレンダ・フィールド値を解決し、日付および時間を判定します。

カレンダ・フィールドの値に競合がある 合は、Calendarにより、最近設定されたカレンダ・フィールドに優先度が付与されます。 次に、カレンダ・フィールドのデフォルト組合せを示します。 もっとも最近に設定されたフィールドによって判定される、最新の組み合わせが使用されます。

日付フィールドの 合:

 YEAR + MONTH + DAY_OF_MONTH
 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
 YEAR + DAY_OF_YEAR
 YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
 
時間フィールドの 合:
 HOUR_OF_DAY
 AM_PM + HOUR
 

選択したフィールドの組み合わせで値が設定されていないカレンダ・フィールドが存在する 合、Calendarはデフォルト値を使用します。 各フィールドのデフォルト値は、具象暦体系により異なります。 GregorianCalendarの 合、フィールドのデフォルト値は、その元期の初めの値です。つまり、YEAR = 1970MONTH = JANUARYDAY_OF_MONTH = 1などです。

ノート: 一部の特別な時間では、その解釈があいまいになることもあります。その 合は、次のように解決されます。

  1. 23:59は一日の最後の分で、00:00は翌日の最初の分になります。 したがって、1999年12月31日23:59 < 2000年1月1日00:00 < 2000年1月1日00:01となります。
  2. 歴史的には明確ではありませんが、深夜零時は「am」に、正午は「pm」に属します。したがって、同じ日の中では12:00 am (深夜零時)< 12:01 am、および12:00 pm (正午)< 12:01 pmとなります

日付や時間のフォーマット文字列は、カレンダの定義の一部ではありません。これらが実行時にユーザーによって修正可能で、オーバーライド可能である必要があるためです。 日付の書式設定には、DateFormatを使用してく さい。

フィールド操作

カレンダ・フィールドは、set()add()、およびroll()

set(f, value)では、カレンダ・フィールドfvalueに変更されます。 さらに、カレンダ・フィールドfが変更されたことを示すように内部メンバー変数が設定されます。 カレンダ・フィールドfはた ちに変更されますが、カレンダの時間値(ミリ秒)は、get()getTime()getTimeInMillis()add()、またはroll()が次に呼び出されるまで再計算されません。 このように、set()を複数回呼び出しても、不要な計算が行われることはありません。 set()を使用してカレンダ・フィールドを変更すると、カレンダ・フィールド、カレンダ・フィールド値、および暦体系によってほかのフィールドも変更されることがあります。 さらに、get(f)では、カレンダ・フィールドの再計算後に、setメソッドを呼び出して設定されたvalueが必ず返されるとは限りません。 これらの詳細は、具象カレンダ・クラスによって決定されます。

: 1999年8月31日に当初設定されたGregorianCalendarを考えます。 set(Calendar.MONTH, Calendar.SEPTEMBER)を呼び出すと、日付が1999年9月31日に設定されます。 これは一時的な内部表現であり、getTime() を呼び出すと1999年10月1日になります。 た し、getTime()を呼び出す前にset(Calendar.DAY_OF_MONTH, 30)を呼び出すと、set()自体のあとに再計算が行われるために、日付が1999年9月30日に設定されます。

add(f, delta)では、フィールドfdeltaが追 されます。 これは、2つの調整によってset(f, get(f)+delta)を呼び出すのと同じです。

Addルール1 呼出しがフィールドfで発生したモジュロ・オーバーフローdeltaになる前に、呼出しでフィールドfの値を引いたあとのフィールドfの値です。 オーバーフローは、フィールドの値が範囲を超え、その結果、次の大きいフィールドが増分または減分されて、フィールドの値がその範囲に入るよう調整された 合に発生します。

Addルール2 小さいフィールドが不変式であると予想される 合に、フィールドfが変更されてから最小値または最大値が変更された、またはタイ ゾーン・オフセットの変更などのほかの制約のために、その前の値と等しくならないと、フィールドの値はその予想される値にできる け近くなるように調整されます。 小さいフィールドは、小さい時間の単位を表します。 HOURDAY_OF_MONTHよりも小さいフィールドです。 不変式ではないと予想される小さいフィールドは、調整されません。 暦体系では、不変式であると予想されるフィールドが判断されます。

さらに、set()とは異なり、add()ではカレンダのミリ秒およびすべてのフィールドがた ちに強制的に再計算されます。

: 1999年8月31日に当初設定されたGregorianCalendarを考えます。 add(Calendar.MONTH, 13)を呼び出すと、カレンダが2000年9月30日に設定されます。 8月に13か月を追 すると翌年の9月になるため、Addルール1によってMONTHフィールドが9月に設定されます。 DAY_OF_MONTHGregorianCalendarでは9月の31日にはできないため、Addルール2によってDAY_OF_MONTHがもっとも近い可能な値の30に設定されます。 これは小さいフィールドですが、GregorianCalendarで月が変更されるときに変更が予定されているため、DAY_OF_WEEKはルール2によっては調整されません。 うるう年では、2月のうるう日の調整が考慮され、月の日付がその年に有効であることが確認されます。

roll(f, delta)では、大きいフィールドを変更せずにフィールドfdeltaが追 されます。 これは、以下の調整によってadd(f, delta)を呼び出すのと同じです。

Rollルール 呼出しのあと、大きいフィールドは変更されません。 大きいフィールドは、大きい時間の単位を表します。 DAY_OF_MONTHHOURよりも大きいフィールドです。

: GregorianCalendar.roll(int, int)を参照してく さい。

使用法モデル add()およびroll()の動作を動機付けするために、月、日、年、および基本となるGregorianCalendarの増分ボタンと減分ボタンがあるユーザー・インタフェース・コンポーネントを考えます。 インタフェースで1999年1月31日が読み込まれ、ユーザーが月増分ボタンを押すと、何が読み込まれるでしょうか。 基本となる実装でset()が使用される 合は、1999年3月3日が読み込まれます。 1999年2月28日となる方がよい結果です。 さらに、ユーザーが月増分ボタンを再度押した 合は、1999年3月28日ではなく、1999年3月31日が読み込まれるはずです。 元の日付を保存し、大きいフィールドが影響を受けるかどうかによってadd()またはroll()を使用することで、ユーザー・インタフェースはほとんどのユーザーが直観的に期待するとおりに動作できます。

導入されたバージョン:
1.1
関連 目:
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static class 
    Calendar.Builderは、各種の日付/時間パラメータからCalendarを作成するために使用されます。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    「January」や「Jan」などのすべてのスタイルで名前を示す、getDisplayNamesのスタイル指示子です。
    static final int
    深夜零時から正午の前までの時間を示すAM_PMフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、HOURが正午より前であるかあとであるかを示します。
    static final int
    グレゴリオ暦とユリウス暦の年の4番目の月を示すMONTHフィールドの値です。
    protected boolean
    fields[]が現在設定されている時間と同期をとっている 合はtrueです。
    static final int
    グレゴリオ暦とユリウス暦の年の8番目の月を示すMONTHフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、月の日を示します。
    static final int
    getおよびsetのためのフィールド値で、月の日を示します。
    static final int
    getおよびsetのためのフィールド値で、曜日を示します。
    static final int
    getおよびsetのためのフィールド値で、現在の月の何度目の曜日かを示します。
    static final int
    getおよびsetのためのフィールド値で、現在の年の何日目かを示します。
    static final int
    グレゴリオ暦とユリウス暦の年の12番目の月を示すMONTHフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、夏時間のオフセットをミリ秒単位で示します。
    static final int
    getおよびsetのためのフィールド値で、ユリウス暦のADまたはBCなどの年代を示します。
    static final int
    グレゴリオ暦とユリウス暦の年の2番目の月を示すMONTHフィールドの値です。
    static final int
    getおよびsetによって認識される重複しないフィールドの数です。
    protected int[]
    このカレンダで現在設定されている時間に対するカレンダ・フィールド値です。
    static final int
    金曜日を示すDAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、午前または午後の何時かを示します。
    static final int
    getおよびsetのためのフィールド値で、時間を示します。
    protected boolean[]
    指定されたカレンダ・フィールドがカレンダで設定されているかどうかを示すフラグです。
    protected boolean
    timeの値が有効である 合はtrueです。
    static final int
    グレゴリオ暦とユリウス暦の年の最初の月を示すMONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の7番目の月を示すMONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の6番目の月を示すMONTHフィールドの値です。
    static final int
    LONG_FORMATと同等の、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    フォーマットに使用される長い名前を示す、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    独立して使用される長い名前(カレンダ・ヘッダーとしての月の名前など)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
    static final int
    グレゴリオ暦とユリウス暦の年の3番目の月を示すMONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の5番目の月を示すMONTHフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、ミリ秒を示します。
    static final int
    getおよびsetのためのフィールド値で、分を示します。
    static final int
    月曜日を示すDAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、月を示します。
    static final int
    フォーマットに使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    独立して使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    グレゴリオ暦とユリウス暦の年の11番目の月を示すMONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の10番目の月を示すMONTHフィールドの値です。
    static final int
    正午から深夜零時の前までの時間を示すAM_PMフィールドの値です。
    static final int
    土曜日を示すDAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、秒を示します。
    static final int
    グレゴリオ暦とユリウス暦の年の9番目の月を示すMONTHフィールドの値です。
    static final int
    SHORT_FORMATと同等の、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    フォーマットに使用される短い名前を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    独立して使用される短い名前(月の略称やカレンダ・ヘッダーなど)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
    static final int
    日曜日を示すDAY_OF_WEEKフィールドの値です。
    static final int
    木曜日を示すDAY_OF_WEEKフィールドの値です。
    protected long
    このカレンダで現在設定されている時間です。1970年1月1日0:00:00 (グリニッジ標準時)からの経過ミリ秒数で表されます。
    static final int
    火曜日を示すDAY_OF_WEEKフィールドの値です。
    static final int
    13番目の月を示すMONTHフィールドの値です。
    static final int
    水曜日を示すDAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、現在の月の週番号を示します。
    static final int
    getおよびsetのためのフィールド値で、現在の年の週番号を示します。
    static final int
    getおよびsetのためのフィールド値で、年を示します。
    static final int
    getおよびsetのためのフィールド値で、GMTから直接計算したオフセットをミリ秒単位で示します。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    デフォルトのタイ ゾーンおよびデフォルトのFORMATロケールを使用してCalendarを作成します。
    protected
    Calendar(TimeZone zone, Locale aLocale)
    指定されたタイ ゾーンおよびロケールを使用してカレンダを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    add(int field, int amount)
    カレンダのルールに基づいて、指定された時間量を指定されたカレンダ・フィールドに 算または減算します。
    boolean
    after(Object when)
    このCalendarが、指定されたObjectの表す時間よりあとの時間を表すかどうかを返します。
    boolean
    before(Object when)
    このCalendarが、指定されたObjectの表す時間より前の時間を表すかどうかを返します。
    final void
    このCalendarのすべてのカレンダ・フィールド値および時間値(元期からのミリ秒単位のオフセット)を未定義に設定します。
    final void
    clear(int field)
    このCalendarの指定されたカレンダ・フィールド値および時間値(元期からのミリ秒単位のオフセット)を未定義に設定します。
    このオブジェクトのコピーを作成して、返します。
    int
    compareTo(Calendar anotherCalendar)
    2つのCalendarオブジェクトで表される時間値(元期からのミリ秒単位のオフセット)を比較します。
    protected void
    カレンダ・フィールドの未設定フィールドに値を入れます。
    protected abstract void
    現在のミリ秒単位の時間値timefields[]内のカレンダ・フィールド値に変換します。
    protected abstract void
    現在のカレンダ・フィールド値fields[]をミリ秒単位の時間値timeに変換します。
    boolean
    このCalendarを指定されたObjectと比較します。
    int
    get(int field)
    指定されたカレンダ・フィールドの値を返します。
    int
    getActualMaximum(int field)
    このCalendarに時間値を指定して、指定のカレンダ・フィールドが取り得る最大値を返します。
    int
    getActualMinimum(int field)
    このCalendarに時間値を指定した、指定のカレンダ・フィールドが取り得る最小値を返します。
    static Set<String>
    実行環境でCalendarによってサポートされるすべてのカレンダ・タイプを含む変更不可能なSetを返します。
    static Locale[]
    このクラスのgetInstanceメソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。
    このCalendarのカレンダ・タイプを返します。
    getDisplayName(int field, int style, Locale locale)
    指定されたstylelocaleのカレンダfield値の文字列表現を返します。
    getDisplayNames(int field, int style, Locale locale)
    指定されたstyleおよびlocaleのカレンダfieldのすべての名前と、それに対応するフィールド値を含むMapを返します。
    int
    週の最初の曜日が何であるかを取得します。たとえば、米国ではSUNDAY、フランスではMONDAYです。
    abstract int
    getGreatestMinimum(int field)
    このCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。
    static Calendar
    デフォルトのタイ ゾーンおよびロケールを使用してカレンダを取得します。
    static Calendar
    デフォルトのタイ ゾーンおよび指定されたロケールを使用してカレンダを取得します。
    static Calendar
    指定されたタイ ゾーンおよびデフォルトのロケールを使用してカレンダを取得します。
    static Calendar
    getInstance(TimeZone zone, Locale aLocale)
    指定されたタイ ゾーンおよびロケールを使用してカレンダを取得します。
    abstract int
    getLeastMaximum(int field)
    このCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。
    abstract int
    getMaximum(int field)
    このCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。
    int
    年の最初の週に必要な最小日数を取得します。たとえば、最初の週が、年の第1週の1日目を含むものとして定義されている 合、このメソッドは1を返します。
    abstract int
    getMinimum(int field)
    このCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。
    final Date
    このCalendarの時間値(元期からのミリ秒単位のオフセット)を表すDateオブジェクトを返します。
    long
    このCalendarの時間値をミリ秒で返します。
    タイ ゾーンを取得します。
    int
    このCalendarで表される暦週の基準年に含まれる週数を返します。
    int
    このCalendarで表される暦週の基準年を返します。
    int
    このカレンダのハッシュ・コードを返します。
    protected final int
    internalGet(int field)
    指定されたカレンダ・フィールドの値を返します。
    boolean
    日付/時間の解釈が厳密でないかどうかを指定します。
    final boolean
    isSet(int field)
    指定されたカレンダ・フィールドが値セットを保持するかどうかを判定します(getメソッド呼出しでトリガーされる内部フィールド計算によって値が設定された 合を含む)。
    boolean
    このCalendarが暦週日付をサポートしているかどうかを返します。
    abstract void
    roll(int field, boolean up)
    大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に 算または減算します。
    void
    roll(int field, int amount)
    大きいフィールドを変更せずに、指定された(符号付きの)量を指定されたカレンダ・フィールドに えます。
    void
    set(int field, int value)
    指定されたカレンダ・フィールドを指定された値に設定します。
    final void
    set(int year, int month, int date)
    カレンダ・フィールドYEARMONTH、およびDAY_OF_MONTHの値を設定します。
    final void
    set(int year, int month, int date, int hourOfDay, int minute)
    カレンダ・フィールドYEARMONTHDAY_OF_MONTHHOUR_OF_DAY、およびMINUTEの値を設定します。
    final void
    set(int year, int month, int date, int hourOfDay, int minute, int second)
    フィールドYEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTEおよびSECONDの値を設定します。
    void
    setFirstDayOfWeek(int value)
    週の最初の曜日が何であるかを設定します。たとえば、米国ではSUNDAY、フランスではMONDAYです。
    void
    setLenient(boolean lenient)
    日付/時間の解釈を厳密に行うかどうかを設定します。
    void
    年の最初の週に必要な最小日数を設定します。たとえば、最初の週が、年の最初の月の最初の日を含むものとして定義されている 合は、値1でこのメソッドを呼び出します。
    final void
    setTime(Date date)
    このCalendarの時間を、指定されたDateに設定します。
    void
    setTimeInMillis(long millis)
    Calendarの現在の時間を、指定されたlong値から設定します。
    void
    指定されたタイ ゾーン値を使用してタイ ゾーンを設定します。
    void
    setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
    Calendarの日付を、指定された日付指定子で設定 - 週の年、年の週および曜日。
    final Instant
    このオブジェクトをInstantに変換します。
    カレンダの文字列表現を返します。

    クラスjava.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • ERA

      public static final int ERA
      getおよびsetのためのフィールド値で、ユリウス暦のADまたはBCなどの年代を示します。 これはカレンダ固有の値です。サブクラスのドキュメントを参照してく さい。
      関連 目:
    • YEAR

      public static final int YEAR
      getおよびsetのためのフィールド値で、年を示します。 これはカレンダ固有の値です。サブクラスのドキュメントを参照してく さい。
      関連 目:
    • MONTH

      public static final int MONTH
      getおよびsetのためのフィールド値で、月を示します。 これはカレンダ固有の値です。 グレゴリオ暦とユリウス暦の年の最初の月はJANUARYで、0となります。最後の月は、1年の月の数によります。
      関連 目:
    • WEEK_OF_YEAR

      public static final int WEEK_OF_YEAR
      getおよびsetのためのフィールド値で、現在の年の週番号を示します。 getFirstDayOfWeek()およびgetMinimalDaysInFirstWeek()で定義される年の最初の週には、値1が使用されます。 サブクラスでは、年の最初の週より前の日に対してWEEK_OF_YEARの値が定義されます。
      関連 目:
    • WEEK_OF_MONTH

      public static final int WEEK_OF_MONTH
      getおよびsetのためのフィールド値で、現在の月の週番号を示します。 getFirstDayOfWeek()およびgetMinimalDaysInFirstWeek()で定義される月の最初の週には、値1が使用されます。 サブクラスでは、月の最初の週より前の日に対してWEEK_OF_MONTHの値が定義されます。
      関連 目:
    • DATE

      public static final int DATE
      getおよびsetのためのフィールド値で、月の日を示します。 これはDAY_OF_MONTHと同義です。 月の最初の日には、値1が使用されます。
      関連 目:
    • DAY_OF_MONTH

      public static final int DAY_OF_MONTH
      getおよびsetのためのフィールド値で、月の日を示します。 これはDATEと同義です。 月の最初の日には、値1が使用されます。
      関連 目:
    • DAY_OF_YEAR

      public static final int DAY_OF_YEAR
      getおよびsetのためのフィールド値で、現在の年の何日目かを示します。 年の最初の日には、値1が使用されます。
      関連 目:
    • DAY_OF_WEEK

      public static final int DAY_OF_WEEK
      getおよびsetのためのフィールド値で、曜日を示します。 カレンダが非厳密でない 合、このフィールドの値はSUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAYおよびSATURDAYになります。 それ以外の 合は、int値が受け入れられ、前述のいずれかの値に正規化されます。
      関連 目:
    • DAY_OF_WEEK_IN_MONTH

      public static final int DAY_OF_WEEK_IN_MONTH
      getおよびsetのためのフィールド値で、現在の月の何度目の曜日かを示します。 DAY_OF_WEEKフィールドとともに使用すると、月の日を一意に指定できます。 WEEK_OF_MONTHおよびWEEK_OF_YEARとは異なり、このフィールドの値はgetFirstDayOfWeek()またはgetMinimalDaysInFirstWeek()には依存しません DAY_OF_MONTH 1から7は常にDAY_OF_WEEK_IN_MONTH 1に対応します。8から14DAY_OF_WEEK_IN_MONTH 2に対応し、以下同様になります。 DAY_OF_WEEK_IN_MONTH 0は、DAY_OF_WEEK_IN_MONTH 1の前の週を示します。  の値は月末から遡って数えられるため、月の最終日曜日は、DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1と指定されます。  の値は遡って計算されるため、通常は当月内の正の値とは異なる位置に配置されます。 たとえば、1か月が31日の 合、DAY_OF_WEEK_IN_MONTH -1DAY_OF_WEEK_IN_MONTH 5および4の最後とオーバーラップします。
      関連 目:
    • AM_PM

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

      public static final int HOUR
      getおよびsetのためのフィールド値で、午前または午後の何時かを示します。 HOURは12時間制(0から11)です。 正午および深夜零時は、12ではなく0で表されます。 たとえば、10:04:15.250 PMの 合、HOURは10になります。
      関連 目:
    • 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になります。
      関連 目:
    • ZONE_OFFSET

      public static final int ZONE_OFFSET
      getおよびsetのためのフィールド値で、GMTから直接計算したオフセットをミリ秒単位で示します。

      TimeZone実装サブクラスが、GMTオフセットの歴史的変化をサポートする 合、このフィールドはこのCalendarのタイ ゾーンの正確なGMTオフセット値を反 します。

      関連 目:
    • DST_OFFSET

      public static final int DST_OFFSET
      getおよびsetのためのフィールド値で、夏時間のオフセットをミリ秒単位で示します。

      TimeZone実装サブクラスが、夏時間のスケジュールの歴史的変化をサポートする 合、このフィールドはこのCalendarのタイ ゾーンの正確な夏時間のオフセット値を反 します。

      関連 目:
    • FIELD_COUNT

      public static final int FIELD_COUNT
      getおよびsetによって認識される重複しないフィールドの数です。 フィールド数の範囲は0..FIELD_COUNT-1です。
      関連 目:
    • 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フィールドの値です。
      関連 目:
    • UNDECIMBER

      public static final int UNDECIMBER
      13番目の月を示すMONTHフィールドの値です。 GregorianCalendarではこの値は使いませんが、太陰暦で使用します。
      関連 目:
    • AM

      public static final int AM
      深夜零時から正午の前までの時間を示すAM_PMフィールドの値です。
      関連 目:
    • PM

      public static final int PM
      正午から深夜零時の前までの時間を示すAM_PMフィールドの値です。
      関連 目:
    • ALL_STYLES

      public static final int ALL_STYLES
      「January」や「Jan」などのすべてのスタイルで名前を示す、getDisplayNamesのスタイル指示子です。
      導入されたバージョン:
      1.6
      関連 目:
    • SHORT

      public static final int SHORT
      SHORT_FORMATと同等の、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
      導入されたバージョン:
      1.6
      関連 目:
    • LONG

      public static final int LONG
      LONG_FORMATと同等の、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
      導入されたバージョン:
      1.6
      関連 目:
    • NARROW_FORMAT

      public static final int NARROW_FORMAT
      フォーマットに使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。 縮小名は通常、1文字からなる文字列です(月曜日を表す「M」など)。
      導入されたバージョン:
      1.8
      関連 目:
    • NARROW_STANDALONE

      public static final int NARROW_STANDALONE
      独立して使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。 縮小名は通常、1文字からなる文字列です(月曜日を表す「M」など)。
      導入されたバージョン:
      1.8
      関連 目:
    • SHORT_FORMAT

      public static final int SHORT_FORMAT
      フォーマットに使用される短い名前を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
      導入されたバージョン:
      1.8
      関連 目:
    • LONG_FORMAT

      public static final int LONG_FORMAT
      フォーマットに使用される長い名前を示す、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
      導入されたバージョン:
      1.8
      関連 目:
    • SHORT_STANDALONE

      public static final int SHORT_STANDALONE
      独立して使用される短い名前(月の略称やカレンダ・ヘッダーなど)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
      導入されたバージョン:
      1.8
      関連 目:
    • LONG_STANDALONE

      public static final int LONG_STANDALONE
      独立して使用される長い名前(カレンダ・ヘッダーとしての月の名前など)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
      導入されたバージョン:
      1.8
      関連 目:
    • fields

      protected int[] fields
      このカレンダで現在設定されている時間に対するカレンダ・フィールド値です。 これは、インデックス値ERAからDST_OFFSETまでの、FIELD_COUNT整数値の配列です。
    • isSet

      protected boolean[] isSet
      指定されたカレンダ・フィールドがカレンダで設定されているかどうかを示すフラグです。 新しいオブジェクトには設定されているフィールドはありません。 フィールドを生成するメソッドを最初に呼び出したあと、すべてのフィールドは設定されたままになります。 これは、インデックス値ERAからDST_OFFSETまでの、FIELD_COUNT boolean値の配列です。
    • time

      protected long time
      このカレンダで現在設定されている時間です。1970年1月1日0:00:00 (グリニッジ標準時)からの経過ミリ秒数で表されます。
      関連 目:
    • isTimeSet

      protected boolean isTimeSet
      timeの値が有効である 合はtrueです。 field[]の 目を変更することで、timeは無効になります。
      関連 目:
    • areFieldsSet

      protected boolean areFieldsSet
      fields[]が現在設定されている時間と同期をとっている 合はtrueです。 falseの 合は、次にフィールドの値を取得しようとしたときに、timeの現在値からすべてのフィールドを再計算するよう強制します。
  • コンストラクタの詳細

    • Calendar

      protected Calendar()
      デフォルトのタイ ゾーンおよびデフォルトのFORMATロケールを使用してCalendarを作成します。
      関連 目:
    • Calendar

      protected Calendar(TimeZone zone, Locale aLocale)
      指定されたタイ ゾーンおよびロケールを使用してカレンダを作成します。
      パラメータ:
      zone - 使用するタイ ゾーン
      aLocale - 週のデータに使用するロケール
  • メソッドの詳細

    • getInstance

      public static Calendar getInstance()
      デフォルトのタイ ゾーンおよびロケールを使用してカレンダを取得します。 返されたCalendarは、デフォルトのFORMATロケールを持つデフォルトのタイ ゾーンの現在の時間に基づいています。

      ロケールに"tz" 「Unicode拡張」のタイ ゾーンが含まれている 合は、そのタイ ゾーンがかわりに使用されます。

      戻り値:
      Calendar。
    • getInstance

      public static Calendar getInstance(TimeZone zone)
      指定されたタイ ゾーンおよびデフォルトのロケールを使用してカレンダを取得します。 返されたCalendarは、デフォルトのFORMATロケールを持つ指定されたタイ ゾーンの現在の時間に基づいています。
      パラメータ:
      zone - 使用するタイ ゾーン
      戻り値:
      Calendar。
      スロー:
      NullPointerException - zonenullである 合
    • getInstance

      public static Calendar getInstance(Locale aLocale)
      デフォルトのタイ ゾーンおよび指定されたロケールを使用してカレンダを取得します。 返されたCalendarは、指定されたロケールを持つデフォルトのタイ ゾーンの現在の時間に基づいています。

      ロケールに"tz" 「Unicode拡張」のタイ ゾーンが含まれている 合は、そのタイ ゾーンがかわりに使用されます。

      パラメータ:
      aLocale - 週のデータに使用するロケール
      戻り値:
      Calendar。
      スロー:
      NullPointerException - aLocalenullの 合
    • getInstance

      public static Calendar getInstance(TimeZone zone, Locale aLocale)
      指定されたタイ ゾーンおよびロケールを使用してカレンダを取得します。 返されたCalendarは、指定されたロケールを持つデフォルトのタイ ゾーンの現在の時間に基づいています。
      パラメータ:
      zone - 使用するタイ ゾーン
      aLocale - 週のデータに使用するロケール
      戻り値:
      Calendar。
      スロー:
      NullPointerException - zoneまたはaLocalenullの 合
    • getAvailableLocales

      public static Locale[] getAvailableLocales()
      このクラスのgetInstanceメソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。 少なくとも、返される配列には、Locale.ROOTに等しいLocaleインスタンスと、Locale.USに等しいLocaleインスタンスが含まれている必要があります。
      戻り値:
      ローカライズされたCalendarインスタンスを使用可能なロケールの配列。
    • computeTime

      protected abstract void computeTime()
      現在のカレンダ・フィールド値fields[]をミリ秒単位の時間値timeに変換します。
      関連 目:
    • computeFields

      protected abstract void computeFields()
      現在のミリ秒単位の時間値timefields[]内のカレンダ・フィールド値に変換します。 これによって、カレンダ・フィールドの値を、カレンダに設定されている新しい時間と同期させることができます。 時間は最初に再計算されません。時間、フィールドの に再計算するには、complete()メソッドを呼び出します。
      関連 目:
    • getTime

      public final Date getTime()
      このCalendarの時間値(元期からのミリ秒単位のオフセット)を表すDateオブジェクトを返します。
      戻り値:
      時間値を表すDate
      関連 目:
    • setTime

      public final void setTime(Date date)
      このCalendarの時間を、指定されたDateに設定します。

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

      パラメータ:
      date - 指定されたDate。
      スロー:
      NullPointerException - datenullである 合
      関連 目:
    • getTimeInMillis

      public long getTimeInMillis()
      このCalendarの時間値をミリ秒で返します。
      戻り値:
      元期からのUTCミリ秒値で表される現在の時間。
      関連 目:
    • setTimeInMillis

      public void setTimeInMillis(long millis)
      Calendarの現在の時間を、指定されたlong値から設定します。
      パラメータ:
      millis - 元期からのUTCミリ秒値で表される新しい時間。
      関連 目:
    • get

      public int get(int field)
      指定されたカレンダ・フィールドの値を返します。 非厳密モードでは、すべてのカレンダ・フィールドが正規化されます。 厳密モードでは、すべてのカレンダ・フィールドが検証され、カレンダ・フィールドが範囲外の値を保持する 合にはこのメソッドにより例外がスローされます。 正規化および検証はcomplete()メソッドによって処理されますが、そのプロセスは暦体系により異なります。
      パラメータ:
      field - 指定されたカレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの値。
      スロー:
      IllegalArgumentException - このCalendarが非厳密でなく、カレンダ・フィールドのいずれかに無効な値がある 合。
      関連 目:
    • internalGet

      protected final int internalGet(int field)
      指定されたカレンダ・フィールドの値を返します。 このメソッドには、フィールド値の正規化や検証は含まれません。
      パラメータ:
      field - 指定されたカレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの値。
      関連 目:
    • set

      public void set(int field, int value)
      指定されたカレンダ・フィールドを指定された値に設定します。 モードが厳密/非厳密であるかに関係なく、このメソッドが値を解釈することはありません。
      パラメータ:
      field - 指定されたカレンダ・フィールド。
      value - 指定されたカレンダ・フィールドに設定する値。
      関連 目:
    • set

      public final void set(int year, int month, int date)
      カレンダ・フィールドYEARMONTH、およびDAY_OF_MONTHの値を設定します。 ほかのカレンダ・フィールドの以前の値は保持されます。 保持されないようにする 合は、最初にclear()を呼び出します。
      パラメータ:
      year - YEARカレンダ・フィールドの設定に使用する値。
      month - MONTHカレンダ・フィールドの設定に使用する値。 Month値は0から始まる(1月は0になる)。
      date - DAY_OF_MONTHカレンダ・フィールドの設定に使用する値。
      関連 目:
    • set

      public final void set(int year, int month, int date, int hourOfDay, int minute)
      カレンダ・フィールドYEARMONTHDAY_OF_MONTHHOUR_OF_DAY、およびMINUTEの値を設定します。 ほかのフィールドの以前の値は保持されます。 保持されないようにする 合は、最初にclear()を呼び出します。
      パラメータ:
      year - YEARカレンダ・フィールドの設定に使用する値。
      month - MONTHカレンダ・フィールドの設定に使用する値。 Month値は0から始まる(1月は0になる)。
      date - DAY_OF_MONTHカレンダ・フィールドの設定に使用する値。
      hourOfDay - HOUR_OF_DAYカレンダ・フィールドの設定に使用する値。
      minute - MINUTEカレンダ・フィールドの設定に使用する値。
      関連 目:
    • set

      public final void set(int year, int month, int date, int hourOfDay, int minute, int second)
      フィールドYEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTEおよびSECONDの値を設定します。 ほかのフィールドの以前の値は保持されます。 保持されないようにする 合は、最初にclear()を呼び出します。
      パラメータ:
      year - YEARカレンダ・フィールドの設定に使用する値。
      month - MONTHカレンダ・フィールドの設定に使用する値。 Month値は0から始まる(1月は0になる)。
      date - DAY_OF_MONTHカレンダ・フィールドの設定に使用する値。
      hourOfDay - HOUR_OF_DAYカレンダ・フィールドの設定に使用する値。
      minute - MINUTEカレンダ・フィールドの設定に使用する値。
      second - SECONDカレンダ・フィールドの設定に使用する値。
      関連 目:
    • clear

      public final void clear()
      このCalendarのすべてのカレンダ・フィールド値および時間値(元期からのミリ秒単位のオフセット)を未定義に設定します。 これは、isSet()がすべてのカレンダ・フィールドでfalseを返し、日付および時間計算でフィールドがこれまで設定されたことがないかのように処理されることを意味します。 Calendar実装クラスは、固有のデフォルト・フィールド値を日付/時間計算に使用できます。 たとえば、YEARフィールド値が未定義の 合、GregorianCalendarは1970を使用します。
      関連 目:
    • clear

      public final void clear(int field)
      このCalendarの指定されたカレンダ・フィールド値および時間値(元期からのミリ秒単位のオフセット)を未定義に設定します。 これは、isSet(field)falseを返すこと、および日付と時間計算でフィールドがこれまで設定されたことがないかのように処理されることを意味します。 Calendar実装クラスは、日付および時間計算にフィールド固有のデフォルト値を使用できます。

      HOUR_OF_DAYHOUR、およびAM_PMフィールドはそれぞれ別個に処理され、時間の解決ルールが適用されます。 フィールドのいずれかをクリアしても、このCalendarの「時」はリセットされません。 「時」の値をリセットするには、set(Calendar.HOUR_OF_DAY, 0)を使用します。

      パラメータ:
      field - クリアするカレンダ・フィールド。
      関連 目:
    • isSet

      public final boolean isSet(int field)
      指定されたカレンダ・フィールドが値セットを保持するかどうかを判定します(getメソッド呼出しでトリガーされる内部フィールド計算によって値が設定された 合を含む)。
      パラメータ:
      field - テスト対象のカレンダ・フィールド
      戻り値:
      指定されたカレンダ・フィールドが値セットを保持する 合はtrue、そうでない 合はfalse
    • getDisplayName

      public String getDisplayName(int field, int style, Locale locale)
      指定されたstylelocaleのカレンダfield値の文字列表現を返します。 適用できる文字列表現がない 合は、nullが返されます。 このメソッドは、文字列表現が指定されたカレンダfieldに適用可能な 合に、get(field)を呼び出してカレンダfield値を取得します。

      たとえば、このCalendarGregorianCalendarであり、その日付が2005-01-01の 合、MONTHフィールドの文字列表現は、英語ロケールの長いスタイルでは「January」になり、短いスタイルでは「Jan」になります。 た し、DAY_OF_MONTHフィールドでは文字列表現を使用できず、このメソッドはnullを返します。

      デフォルトの実装は、DateFormatSymbolsに特定のlocaleの名前が含まれるカレンダ・フィールドをサポートします。

      Calendar fieldの文字列表現がなく、カレンダが非厳密でないモードであり、カレンダ・フィールドに無効な値がある 合、nullが返されます。 Calendar fieldの文字列表現があり、カレンダが非厳密でないモードで、カレンダ・フィールドに無効な値がある 合は、IllegalArgumentExceptionがスローされます。

      パラメータ:
      field - 文字列表現が返されるカレンダ・フィールド
      style - 文字列表現に適用されるスタイル。SHORT_FORMAT (SHORT)、SHORT_STANDALONELONG_FORMAT (LONG)、LONG_STANDALONENARROW_FORMATNARROW_STANDALONEのいずれか。
      locale - 文字列表現のロケール(localeで指定されたカレンダ・タイプは無視される)
      戻り値:
      指定されたstyleの指定されたfieldの文字列表現。適用できる文字列表現がない 合は、null
      スロー:
      IllegalArgumentException - fieldまたはstyleが無効な 合、あるいはこのCalendarが厳密モードで、カレンダ・フィールドのいずれかに無効な値が含まれている 合
      NullPointerException - localeがnullである 合
      導入されたバージョン:
      1.6
    • getDisplayNames

      public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
      指定されたstyleおよびlocaleのカレンダfieldのすべての名前と、それに対応するフィールド値を含むMapを返します。 たとえば、このCalendarGregorianCalendarの 合、返されるマップには、英語ロケールの短いスタイルでは、JANUARYに対する「Jan」、FEBRUARYに対する「Feb」などが含まれます。

      単一文字を使用するため、縮小名は一意でなくてもかまいません(日曜日と土曜日を表す「S」など)。 その 合、返されるMapには縮小名は含まれません。

      その他のカレンダ・フィールドの値が、表示名のセットを決定するときに考慮されることがあります。 たとえば、このCalendarが太陰太陽暦システ であり、YEARフィールドによって指定される年の値にうるう月がある 合、このメソッドはうるう月の名前を含む月の名前を返し、月の名前はその年に固有の値にマップされます。

      デフォルト実装は、DateFormatSymbolsに含まれる表示名をサポートします。 たとえば、fieldMONTHstyleALL_STYLESの 合、このメソッドは、DateFormatSymbols.getShortMonths()およびDateFormatSymbols.getMonths()によって返されるすべての文字列を含むMapを返します。

      getDisplayName(int, int, Locale)とは異なり、Calendarが非厳密でなく、カレンダ・フィールドのいずれかに無効な値がある 合、このメソッドはIllegalArgumentExceptionをスローしません。 かわりに、このメソッドはnullまたはMapを返します。

      パラメータ:
      field - 表示名が返されるカレンダ・フィールド
      style - 文字列表現に適用されるスタイル。SHORT_FORMAT (SHORT)、SHORT_STANDALONELONG_FORMAT (LONG)、LONG_STANDALONE, NARROW_FORMATNARROW_STANDALONEのいずれか
      locale - 表示名のロケール
      戻り値:
      stylelocaleのすべての表示名とそれらのフィールド値を含むMapfieldに表示名が定義されていない 合は、null
      スロー:
      IllegalArgumentException - fieldまたはstyleが無効な 合
      NullPointerException - localeがnullである 合
      導入されたバージョン:
      1.6
    • complete

      protected void complete()
      カレンダ・フィールドの未設定フィールドに値を入れます。 カレンダ・フィールド値から時間値(元期からのミリ秒単位のオフセット)が計算されていない 合、最初にcomputeTime()メソッドが呼び出されます。 次に、computeFields()メソッドが呼び出されて、すべてのカレンダ・フィールド値が計算されます。
    • getAvailableCalendarTypes

      public static Set<String> getAvailableCalendarTypes()
      実行環境でCalendarによってサポートされるすべてのカレンダ・タイプを含む変更不可能なSetを返します。 使用可能なカレンダ・タイプをUnicodeロケール拡張に使用できます。 返されるSetには少なくとも"gregory".が含まれています。 カレンダ・タイプには別名("gregory"を表す"gregorian"など)は含まれません。
      戻り値:
      使用可能なすべてのカレンダ・タイプを含む変更不可能なSet
      導入されたバージョン:
      1.8
      関連 目:
    • getCalendarType

      public String getCalendarType()
      このCalendarのカレンダ・タイプを返します。 カレンダ・タイプは、Unicode Locale Data Markup Language (LDML)仕様によって定義されます。

      このメソッドのデフォルトの実装では、このCalendarインスタンスのクラス名を返します。 LDMLで定義された暦体系を実装するサブクラスは、このメソッドをオーバーライドして適切なカレンダ・タイプを返すはずです。

      戻り値:
      LDMLで定義されたカレンダ・タイプ、またはこのCalendarインスタンスのクラス名
      導入されたバージョン:
      1.8
      関連 目:
    • equals

      public boolean equals(Object obj)
      このCalendarを指定されたObjectと比較します。 引数が、このオブジェクトと同じCalendarパラメータの同じ時間値(元期からのミリ秒単位のオフセット)を表す同じ暦体系のCalendarオブジェクトである 合にのみ、結果はtrueになります。

      Calendarパラメータは、isLenientgetFirstDayOfWeekgetMinimalDaysInFirstWeek、およびgetTimeZoneメソッドにより表現される値です。 2つのCalendar間のパラメータに相違がある 合、このメソッドはfalseを返します。

      時間値 けを比較する 合は、compareToメソッドを使用します。

      オーバーライド:
      equals、クラスObject
      パラメータ:
      obj - 比較対象のオブジェクト。
      戻り値:
      このオブジェクトがobjに等しい 合はtrue。それ以外の 合はfalse
      関連 目:
    • hashCode

      public int hashCode()
      このカレンダのハッシュ・コードを返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このオブジェクトのハッシュ・コード値。
      導入されたバージョン:
      1.2
      関連 目:
    • before

      public boolean before(Object when)
      このCalendarが、指定されたObjectの表す時間より前の時間を表すかどうかを返します。 このメソッドは、次と同等です。
      
               compareTo(when) < 0
       
      等価になるのは、whenCalendarインスタンスである 合 けです。 それ以外の 合、このメソッドはfalseを返します。
      パラメータ:
      when - 比較対象のObject
      戻り値:
      このCalendarの時間がwhenで表される時間よりも前の 合はtrue、そうでない 合はfalse
      関連 目:
    • after

      public boolean after(Object when)
      このCalendarが、指定されたObjectの表す時間よりあとの時間を表すかどうかを返します。 このメソッドは、次と同等です。
      
               compareTo(when) > 0
       
      等価になるのは、whenCalendarインスタンスである 合 けです。 それ以外の 合、このメソッドはfalseを返します。
      パラメータ:
      when - 比較対象のObject
      戻り値:
      このCalendarの時間がwhenで表される時間よりもあとの 合はtrue、そうでない 合はfalse
      関連 目:
    • compareTo

      public int compareTo(Calendar anotherCalendar)
      2つのCalendarオブジェクトで表される時間値(元期からのミリ秒単位のオフセット)を比較します。
      定義:
      compareTo、インタフェースComparable<Calendar>
      パラメータ:
      anotherCalendar - 比較対象のCalendar
      戻り値:
      引数で表される時間がこのCalendarの表す時間と等しい 合の値は0。このCalendarの時間が引数で表される時間より前の 合は0未満の値。このCalendarの時間が引数で表される時間よりあとの 合は、0より大きい値。
      スロー:
      NullPointerException - 指定されたCalendarnullである 合。
      IllegalArgumentException - カレンダ値が無効なため、指定されたCalendarオブジェクトの時間値を取得できない 合。
      導入されたバージョン:
      1.5
    • add

      public abstract void add(int field, int amount)
      カレンダのルールに基づいて、指定された時間量を指定されたカレンダ・フィールドに 算または減算します。 たとえば、カレンダの現在の時間から5日を引く 合は、次の呼出しを実行します。

      add(Calendar.DAY_OF_MONTH, -5).

      パラメータ:
      field - カレンダ・フィールド。
      amount - フィールドに追 される日付または時間の量。
      スロー:
      IllegalArgumentException - このCalendarが非厳密でなく、カレンダ・フィールドのいずれかに無効な値がある 合、またはfieldZONE_OFFSETDST_OFFSET、または不明の 合。
      関連 目:
    • roll

      public abstract void roll(int field, boolean up)
      大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に 算または減算します。 たとえば、現在の日付を1日 け上へ動かすには、次のようにrollメソッドを呼び出します。

      roll(Calendar.DATE, true)。 年またはCalendar.YEARフィールドを動かすと、年の値は、1とgetMaximum(Calendar.YEAR)で返される値の範囲の年に変わります。 月またはCalendar.MONTHフィールドを動かすと、日付などのほかのフィールドが矛盾を起こす 合があるので、その 合はそれらのフィールドを変更する必要があります。 たとえば、日付01/31/96の月を動かすと、結果は02/29/96となります。 日の時間またはCalendar.HOUR_OF_DAYフィールドを動かすと、時の値は、0と23の範囲の値(ゼロ・ベース)に変わります。

      パラメータ:
      field - 時間フィールド。
      up - 指定された時間フィールドの値を上へ動かすのか、下へ動かすのかを指定する。 上へ動かす 合はtrue、そうでない 合はfalseを使用する。
      スロー:
      IllegalArgumentException - このCalendarが非厳密でなく、カレンダ・フィールドのいずれかに無効な値がある 合、またはfieldZONE_OFFSETDST_OFFSET、または不明の 合。
      関連 目:
    • roll

      public void roll(int field, int amount)
      大きいフィールドを変更せずに、指定された(符号付きの)量を指定されたカレンダ・フィールドに えます。  の量は下へローリングすることを意味します。

      ノート: Calendarに対するこのデフォルト実装は、一単位 けローリングするroll()のバージョンを繰返し呼び出します。 これは常に適切に動作するとは限りません。 たとえば、DAY_OF_MONTHフィールドが31の 合、2月をローリングすると、そのフィールドを28に設定したままにします。 この機能のGregorianCalendarバージョンはこの問題に対応しています。 ほかのサブクラスではこの機能のオーバーライドも提供する必要があり、これは適切な動作です。

      パラメータ:
      field - カレンダ・フィールド。
      amount - カレンダfieldに追 する指定された量。
      スロー:
      IllegalArgumentException - このCalendarが非厳密でなく、カレンダ・フィールドのいずれかに無効な値がある 合、またはfieldZONE_OFFSETDST_OFFSET、または不明の 合。
      導入されたバージョン:
      1.2
      関連 目:
    • setTimeZone

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

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

      public void setLenient(boolean lenient)
      日付/時間の解釈を厳密に行うかどうかを設定します。 厳密でない解釈では、「1996年2月942日」のような日付は、1996年2月1日から第941日目と同じこととみなされます。 厳密な解釈では、このような日付の 合、例外がスローされます。 デフォルトは非厳密です。
      パラメータ:
      lenient - 非厳密モードがオンの 合はtrue、そうでない 合はfalse
      関連 目:
    • isLenient

      public boolean isLenient()
      日付/時間の解釈が厳密でないかどうかを指定します。
      戻り値:
      このカレンダの解釈モードが非厳密の 合はtrue、そうでない 合はfalse
      関連 目:
    • setFirstDayOfWeek

      public void setFirstDayOfWeek(int value)
      週の最初の曜日が何であるかを設定します。たとえば、米国ではSUNDAY、フランスではMONDAYです。
      パラメータ:
      value - 指定された週の最初の日。
      関連 目:
    • getFirstDayOfWeek

      public int getFirstDayOfWeek()
      週の最初の曜日が何であるかを取得します。たとえば、米国ではSUNDAY、フランスではMONDAYです。
      戻り値:
      週の最初の日。
      関連 目:
    • setMinimalDaysInFirstWeek

      public void setMinimalDaysInFirstWeek(int value)
      年の最初の週に必要な最小日数を設定します。たとえば、最初の週が、年の最初の月の最初の日を含むものとして定義されている 合は、値1でこのメソッドを呼び出します。 必要な日数が完全な一週間分である 合は、値7を使用します。
      パラメータ:
      value - 年の最初の週に必要な指定された最小日数。
      関連 目:
    • getMinimalDaysInFirstWeek

      public int getMinimalDaysInFirstWeek()
      年の最初の週に必要な最小日数を取得します。たとえば、最初の週が、年の第1週の1日目を含むものとして定義されている 合、このメソッドは1を返します。 必要な最小日数が完全な一週間分である 合、このメソッドは7を使用します。
      戻り値:
      年の最初の週に必要な最小日数。
      関連 目:
    • isWeekDateSupported

      public boolean isWeekDateSupported()
      このCalendarが暦週日付をサポートしているかどうかを返します。

      このメソッドのデフォルト実装はfalseを返します。

      戻り値:
      このCalendarが暦週日付をサポートする 合はtrueを返し、そうでない 合はfalseを返します。
      導入されたバージョン:
      1.7
      関連 目:
    • getWeekYear

      public int getWeekYear()
      このCalendarで表される暦週の基準年を返します。 暦週の基準年は、週のサイクルと同期がとられます。 最初の週の最初の日は、暦週の基準年の最初の日になります。

      このメソッドのデフォルト実装はUnsupportedOperationExceptionをスローします。

      戻り値:
      このCalendarの暦週の基準年
      スロー:
      UnsupportedOperationException - 暦週の基準年の番号付けがこのCalendarでサポートされていない 合。
      導入されたバージョン:
      1.7
      関連 目:
    • setWeekDate

      public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
      Calendarの日付を、指定された日付指定子で設定 - 週の年、年の週および曜日。

      setメソッドと異なり、すべてのカレンダ・フィールドおよびtimeの値は返された時点で計算されます。

      weekOfYearweekYearの有効な年次の範囲外の 合、weekYearおよび weekOfYearの値が非厳密なモードで調整されるか、または IllegalArgumentExceptionが非厳密でないモードでスローされます。

      このメソッドのデフォルト実装はUnsupportedOperationExceptionをスローします。

      パラメータ:
      weekYear - 暦週の基準年
      weekOfYear - weekYearに基づく週番号
      dayOfWeek - 曜日の値。DAY_OF_WEEKフィールドの定数(SUNDAY、...、SATURDAY)の1つ。
      スロー:
      IllegalArgumentException - 厳密モードで、指定されたいずれかの日付指定子が無効であるか、いずれかのカレンダ・フィールドが、指定された日付指定子と矛盾している 合
      UnsupportedOperationException - 暦週の基準年の番号付けがこのCalendarでサポートされていない 合。
      導入されたバージョン:
      1.7
      関連 目:
    • getWeeksInWeekYear

      public int getWeeksInWeekYear()
      このCalendarで表される暦週の基準年に含まれる週数を返します。

      このメソッドのデフォルト実装はUnsupportedOperationExceptionをスローします。

      戻り値:
      暦週の基準年に含まれる週数。
      スロー:
      UnsupportedOperationException - 暦週の基準年の番号付けがこのCalendarでサポートされていない 合。
      導入されたバージョン:
      1.7
      関連 目:
    • getMinimum

      public abstract int getMinimum(int field)
      このCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。 最小値は、すべての可能な時間値に対してgetメソッドで返された最小値として定義されます。 最小値は、インスタンスの特定のパラメータを持つそれぞれの暦体系によって異なります。
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの最小値。
      関連 目:
    • getMaximum

      public abstract int getMaximum(int field)
      このCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。 最大値は、すべての可能な時間値に対してgetメソッドで返された最大値として定義されます。 最大値は、インスタンスの特定のパラメータを持つそれぞれの暦体系によって異なります。
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの最大値。
      関連 目:
    • getGreatestMinimum

      public abstract int getGreatestMinimum(int field)
      このCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。 最大最小値は、すべての可能な時間値に対してgetActualMinimum(int)メソッドで返された最大値として定義されます。 最大最小値は、インスタンスの特定のパラメータを持つそれぞれの暦体系によって異なります。
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドのもっとも大きい最小値。
      関連 目:
    • getLeastMaximum

      public abstract int getLeastMaximum(int field)
      このCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。 最小最大値は、すべての可能な時間値に対してgetActualMaximum(int)メソッドで返された最小値として定義されます。 最小最大値は、インスタンスの特定のパラメータを持つそれぞれの暦体系によって異なります。 たとえば、グレゴリオ暦のシステ のCalendarでは、DAY_OF_MONTHフィールドに28が返されます。これは、このカレンダでは日数がもっとも少ない月の最後の日が、平年の2月の28番目の日であるためです。
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの最小最大値。
      関連 目:
    • getActualMinimum

      public int getActualMinimum(int field)
      このCalendarに時間値を指定した、指定のカレンダ・フィールドが取り得る最小値を返します。

      このメソッドのデフォルトの実装では、カレンダ・フィールドの実際の最小値を決定するために反復アルゴリズ を使用します。 可能な 合はサブクラスがこれをより効率的な実装でオーバーライドします。多くの 合、実際には単にgetMinimum()が返されることによってオーバーライドされます。

      パラメータ:
      field - カレンダ・フィールド
      戻り値:
      このCalendarの時間値に対する、指定されたカレンダ・フィールドの最小値
      導入されたバージョン:
      1.2
      関連 目:
    • getActualMaximum

      public int getActualMaximum(int field)
      このCalendarに時間値を指定して、指定のカレンダ・フィールドが取り得る最大値を返します。 たとえば、MONTHフィールドの実際の最大値は、ある年では12になり、ヘブライ暦システ の 合の別の年では13になります。

      このメソッドのデフォルトの実装では、カレンダ・フィールドの実際の最大値を決定するために反復アルゴリズ を使用します。 可能な 合はサブクラスがこれをより効率的な実装でオーバーライドします。

      パラメータ:
      field - カレンダ・フィールド
      戻り値:
      このCalendarの時間値に対する、指定されたカレンダ・フィールドの最大値
      導入されたバージョン:
      1.2
      関連 目:
    • clone

      public Object clone()
      このオブジェクトのコピーを作成して、返します。
      オーバーライド:
      clone、クラスObject
      戻り値:
      このオブジェクトのコピー。
      関連 目:
    • toString

      public String toString()
      カレンダの文字列表現を返します。 このメソッドはデバッグのため けに使われ、返される文字列の形式は実装によって異なります。 返された文字列は空である可能性がありますが、nullにはなりません。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このカレンダの文字列表現。
    • toInstant

      public final Instant toInstant()
      このオブジェクトをInstantに変換します。

      この変換では、時系列上でこのCalendarと同じ時点を表すInstantを作成します。

      戻り値:
      時系列上の同じ時点を表すインスタント
      導入されたバージョン:
      1.8