モジュール java.base
パッケージ java.util

クラス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の呼出しでは、この種の計算が行われます。

非厳密性

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によっては調整されません。

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
関連項目:
System.currentTimeMillis(), Date, GregorianCalendar, TimeZone, DateFormat, 直列化された形式
  • ネストされたクラスのサマリー

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

    フィールド 
    修飾子と型 フィールド 説明
    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
    LONG_FORMATと同等の、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static int LONG_FORMAT
    フォーマットに使用される長い名前を示す、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static int LONG_STANDALONE
    独立して使用される長い名前(カレンダ・ヘッダーとしての月の名前など)を示す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 NARROW_FORMAT
    フォーマットに使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static int NARROW_STANDALONE
    独立して使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    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
    SHORT_FORMATと同等の、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static int SHORT_FORMAT
    フォーマットに使用される短い名前を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static int SHORT_STANDALONE
    独立して使用される短い名前(月の略称やカレンダ・ヘッダーなど)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
    static int SUNDAY
    日曜日を示すDAY_OF_WEEKフィールドの値です。
    static int THURSDAY
    木曜日を示すDAY_OF_WEEKフィールドの値です。
    protected long time
    このカレンダで現在設定されている時間です。1970年1月1日0:00:00 (グリニッジ標準時)からの経過ミリ秒数で表されます。
    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のためのフィールド値で、GMTから直接計算したオフセットをミリ秒単位で示します。
  • コンストラクタのサマリー

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

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

    finalizegetClassnotifynotifyAllwaitwaitwait
  • フィールド詳細

    • ERA

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

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

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

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

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

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

      public static final int DAY_OF_MONTH
      getおよびsetのためのフィールド値で、月の日を示します。 これはDATEと同義です。 月の最初の日には、値1が使用されます。
      関連項目:
      DATE, 定数フィールド値
    • 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のためのフィールド値で、曜日を示します。 このフィールドの値は、SUNDAYMONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAY、およびSATURDAYになります。
      関連項目:
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 定数フィールド値
    • 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の最後とオーバーラップします。
      関連項目:
      DAY_OF_WEEK, WEEK_OF_MONTH, 定数フィールド値
    • 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時間制(0から11)です。 正午および深夜零時は、12ではなく0で表されます。 たとえば、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になります。
      関連項目:
      HOUR, 定数フィールド値
    • 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_FORMAT, LONG_FORMAT, SHORT_STANDALONE, LONG_STANDALONE, SHORT, LONG, 定数フィールド値
    • SHORT

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

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

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

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

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

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

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

      public static final int LONG_STANDALONE
      独立して使用される長い名前(カレンダ・ヘッダーとしての月の名前など)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
      導入されたバージョン:
      1.8
      関連項目:
      LONG_FORMAT, SHORT_FORMAT, SHORT_STANDALONE, 定数フィールド値
    • 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
    • isTimeSet

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

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

    • Calendar

      protected Calendar()
      デフォルトのタイムゾーンおよびデフォルトのFORMATロケールを使用してCalendarを作成します。
      関連項目:
      TimeZone.getDefault()
    • 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。
    • getInstance

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

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

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

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

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

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

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

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

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

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

      パラメータ:
      date - 指定されたDate。
      関連項目:
      getTime(), setTimeInMillis(long)
    • getTimeInMillis

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

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

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

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

      public void set​(int field, int value)
      指定されたカレンダ・フィールドを指定された値に設定します。 モードが厳密/非厳密であるかに関係なく、このメソッドが値を解釈することはありません。
      パラメータ:
      field - 指定されたカレンダ・フィールド。
      value - 指定されたカレンダ・フィールドに設定する値。
      例外:
      ArrayIndexOutOfBoundsException - 厳密性モードで、指定されたフィールドが範囲外の場合(field < 0||field>= FIELD_COUNT)。
      関連項目:
      set(int,int,int), set(int,int,int,int,int), set(int,int,int,int,int,int), get(int)
    • 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(int,int), set(int,int,int,int,int), set(int,int,int,int,int,int)
    • 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(int,int), set(int,int,int), set(int,int,int,int,int,int)
    • 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カレンダ・フィールドの設定に使用する値。
      関連項目:
      set(int,int), set(int,int,int), set(int,int,int,int,int)
    • clear

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

      パラメータ:
      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を返します。

      パラメータ:
      field - 表示名が返されるカレンダ・フィールド
      style - 文字列表現に適用されるスタイル。SHORT_FORMAT (SHORT)、SHORT_STANDALONELONG_FORMAT (LONG)、LONG_STANDALONE, NARROW_FORMATNARROW_STANDALONEのいずれか
      locale - 表示名のロケール
      戻り値:
      stylelocaleのすべての表示名とそれらのフィールド値を含むMapfieldに表示名が定義されていない場合は、null
      例外:
      IllegalArgumentException - fieldまたはstyleが無効な場合、あるいはこのCalendarが厳密モードで、カレンダ・フィールドのいずれかに無効な値が含まれている場合
      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(), Calendar.Builder.setCalendarType(String), Locale.getUnicodeLocaleType(String)
    • getCalendarType

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

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

      戻り値:
      LDMLで定義されたカレンダ・タイプ、またはこのCalendarインスタンスのクラス名
      導入されたバージョン:
      1.8
      関連項目:
      Locale extensions, Locale.Builder.setLocale(Locale), Locale.Builder.setUnicodeLocaleKeyword(String, String)
    • equals

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

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

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

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

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

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

      public boolean after​(Object when)
      このCalendarが、指定されたObjectの表す時間よりあとの時間を表すかどうかを返します。 このメソッドは、次と同等です。
      
               compareTo(when) > 0
       
      等価になるのは、whenCalendarインスタンスである場合だけです。 それ以外の場合、このメソッドはfalseを返します。
      パラメータ:
      when - 比較対象のObject
      戻り値:
      このCalendarの時間がwhenで表される時間よりもあとの場合はtrue、そうでない場合はfalse
      関連項目:
      compareTo(Calendar)
    • 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 - フィールドに追加される日付または時間の量。
      関連項目:
      roll(int,int), set(int,int)
    • 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を使用する。
      関連項目:
      add(int,int), set(int,int)
    • roll

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

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

      パラメータ:
      field - カレンダ・フィールド。
      amount - カレンダfieldに追加する指定された量。
      導入されたバージョン:
      1.2
      関連項目:
      roll(int,boolean), add(int,int), set(int,int)
    • 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(), DateFormat.setLenient(boolean)
    • isLenient

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

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

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

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

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

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

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

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

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

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

      戻り値:
      このCalendarの暦週の基準年
      例外:
      UnsupportedOperationException - 暦週の基準年の番号付けがこのCalendarでサポートされていない場合。
      導入されたバージョン:
      1.7
      関連項目:
      isWeekDateSupported(), getFirstDayOfWeek(), getMinimalDaysInFirstWeek()
    • 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
      関連項目:
      isWeekDateSupported(), getFirstDayOfWeek(), getMinimalDaysInFirstWeek()
    • getWeeksInWeekYear

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

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

      戻り値:
      暦週の基準年に含まれる週数。
      例外:
      UnsupportedOperationException - 暦週の基準年の番号付けがこのCalendarでサポートされていない場合。
      導入されたバージョン:
      1.7
      関連項目:
      WEEK_OF_YEAR, isWeekDateSupported(), getWeekYear(), getActualMaximum(int)
    • getMinimum

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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