クラスGregorianCalendar

java.lang.Object
java.util.Calendar
java.util.GregorianCalendar
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Calendar>

public class GregorianCalendar extends Calendar
GregorianCalendarは、Calendarの具象サブクラスであり、世界のほとんどの地域で使用される標準的な暦体系を提供します。

GregorianCalendarは、グレゴリオ暦とユリウス暦をサポートするハイブリッド・カレンダで、単一の変わり目を処理します。この変わり目は、デフォルトでは、グレゴリオ暦が制定された日(一部の国では1582年10月15日、その他の国ではそれ以後)に対応しています。 切換え日は、呼出し側でsetGregorianChange()を呼び出して変更できます。

歴史的に、グレゴリオ暦を最初に採用した国々では、1582年10月4日(ユリウス歴)のあとに1582年10月15日(グレゴリオ歴)が続きました。 このカレンダはこれを正確にモデル化しています。 グレゴリオ暦への切換え日の前は、GregorianCalendarではユリウス暦を実装しています。 グレゴリオ暦とユリウス暦の唯一の違いはうるう年のルールです。 ユリウス暦は4年ごとにうるう年を指定しますが、グレゴリオ暦では、400で割り切れない世紀の初年をうるう年にしません。

GregorianCalendarは、先発グレゴリオ暦およびユリウス暦を実装します。 すなわち、日付の計算では、現在のルールを無限の過去あるいは未来に向けて適用します。 このため、GregorianCalendarはすべての年について一貫した結果を生成するために使用できます。 ただし、GregorianCalendarを使用して得られた日付は、歴史的に、現代と同様のユリウス暦が採用されたAD 4年3月1日以降の日付だけが正確です。 この日付より前には、うるう年のルールは不規則に適用されており、BC 45年以前にはユリウス暦は存在さえしていませんでした。

グレゴリオ暦の制定より前は、元日は3月25日でした。 混乱を避けるために、このカレンダでは常に1月1日を使います。 必要であれば、グレゴリオ暦より前の日付に対し、1月1日から3月24日の間の日に調整することができます。

年の何週目かを表す値および暦週の基準年

WEEK_OF_YEARフィールドに対して計算される値の範囲は、1から53です。 暦年の最初の週は、その年から少なくともgetMinimalDaysInFirstWeek()日を含むgetFirstDayOfWeek()で始まるもっとも早い7日間です。 したがって、最初の週は、getMinimalDaysInFirstWeek()の値、 getFirstDayOfWeek()の値、および1月1日の曜日により変化します。 ある年の第1週から翌年の第1週までの週(その週は含まない)は、必要に応じて2から52または53まで順に番号が付けられます(ユリウス暦からグレゴリオ暦へ移行に含まれる年を除く)。

GregorianCalendarを構築するとき、getFirstDayOfWeek()および getMinimalDaysInFirstWeek()の値は、ロケールに依存したリソースを使用して初期化されます。 getFirstDayOfWeek()MONDAY getMinimalDaysInFirstWeek()が4の場合、週の決定はISO 8601に準拠し、これらの値は、標準の設定が優先されるロケールで使用されます。 これらの値は、setFirstDayOfWeek()およびsetMinimalDaysInFirstWeek()を呼び出すことによって明示的に設定できます。

暦週の基準年は、WEEK_OF_YEARのサイクルと同期がとられます。 最初の週と最後の週の間にあるすべての週(両端の週を含む)の暦週の基準年は、同じ値になります。 したがって、暦週の基準年が同じでも、最初の日と最後の日では暦年の値が異なる場合があります。

たとえば、1998年1月1日は木曜日です。 getFirstDayOfWeek()MONDAY getMinimalDaysInFirstWeek()が4 (ISO 8601規格に準拠した設定)の場合、1998年の第1週は1997年12月29日に始まり1998年1月4日で終わります。 暦年が1997年の最後の3日については、暦週の基準年が1998になります。 ただし、getFirstDayOfWeek()SUNDAYの場合、1998年の第1週は1998年1月4日に始まり1998年1月10日に終わります。1998年の最初の3日間は1997年の第53週に入り、それらの日の暦週の基準年は1997です。

月の何週目かを表す週(Week Of Month)

WEEK_OF_MONTHフィールドに対して計算される値の範囲は、0から6です。 月の第1週(WEEK_OF_MONTH = 1の日)は、その月で少なくともgetMinimalDaysInFirstWeek()日間連続するもっとも早い週になり、getFirstDayOfWeek()の前日までです。 年の第1週とは異なり、月の第1週は7日より短いことがあり、getFirstDayOfWeek()で始まる必要はなく、前の月の日は含まれません。 第1週より前にあるその月の日については、WEEK_OF_MONTHの値は0です。

たとえば、getFirstDayOfWeek()SUNDAYgetMinimalDaysInFirstWeek()が4の場合、1998年1月の第1週は、1月4日の日曜日から1月10日の土曜日になります。 これらの日のWEEK_OF_MONTHの値は1です。 1月1日の木曜日から1月3日の土曜日までのWEEK_OF_MONTHの値は0です。 getMinimalDaysInFirstWeek()の値が3に変更されると、1月1日から1月3日までのWEEK_OF_MONTHの値は1になります。

フィールドのデフォルト値

clearメソッドは、カレンダ・フィールドを未定義に設定します。 フィールドの値が未定義の場合、GregorianCalendarは、各カレンダ・フィールドに対して次のデフォルト値を使用します。

GregorianCalendar のフィールドのデフォルト値
フィールド デフォルト値
ERA AD
YEAR 1970
MONTH JANUARY
DAY_OF_MONTH 1
DAY_OF_WEEK the first day of week
WEEK_OF_MONTH 0
DAY_OF_WEEK_IN_MONTH 1
AM_PM AM
HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND 0

前述のリストに含まれないフィールドについては、デフォルト値は適用されません。

例:

// get the supported ids for GMT-08:00 (Pacific Standard Time)
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
// if no ids were returned, something is wrong. get out.
if (ids.length == 0)
    System.exit(0);

 // begin output
System.out.println("Current Time");

// create a Pacific Standard Time time zone
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

// set up rules for Daylight Saving Time
pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

// create a GregorianCalendar with the Pacific Daylight time zone
// and the current date and time
Calendar calendar = new GregorianCalendar(pdt);
Date trialTime = new Date();
calendar.setTime(trialTime);

// print out a bunch of interesting things
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
                   + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
                   + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
System.out.println("DST_OFFSET: "
                   + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));
System.out.println("Current Time, with hour reset to 3");
calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
calendar.set(Calendar.HOUR, 3);
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
                   + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
       + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
System.out.println("DST_OFFSET: "
       + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours

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

    Calendarクラスで宣言されたネストされたクラス/インタフェース

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

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    キリスト紀元(西暦)を示すERAフィールドの値であり、CEとも呼ばれます。
    static final int
    キリスト紀元より前の期間(BC)を示すERAフィールドの値であり、BCEとも呼ばれます。

    クラス Calendarで宣言されたフィールド

    ALL_STYLES, AM, AM_PM, APRIL, areFieldsSet, AUGUST, DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, DECEMBER, DST_OFFSET, ERA, FEBRUARY, FIELD_COUNT, fields, FRIDAY, HOUR, HOUR_OF_DAY, isSet, isTimeSet, JANUARY, JULY, JUNE, LONG, LONG_FORMAT, LONG_STANDALONE, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NARROW_FORMAT, NARROW_STANDALONE, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SHORT, SHORT_FORMAT, SHORT_STANDALONE, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET
    修飾子と型
    フィールド
    説明
    static final int
    「January」や「Jan」などのすべてのスタイルで名前を示す、getDisplayNamesのスタイル指示子です。
    static final int
    深夜零時から正午の前までの時間を示すCalendar.AM_PMフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、HOURが正午より前であるかあとであるかを示します。
    static final int
    グレゴリオ暦とユリウス暦の年の4番目の月を示すCalendar.MONTHフィールドの値です。
    protected boolean
    fields[]が現在設定されている時間と同期をとっている場合はtrueです。
    static final int
    グレゴリオ暦とユリウス暦の年の8番目の月を示すCalendar.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番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、夏時間のオフセットをミリ秒単位で示します。
    static final int
    getおよびsetのためのフィールド値で、ユリウス暦のADまたはBCなどの年代を示します。
    static final int
    グレゴリオ暦とユリウス暦の年の2番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    getおよびsetによって認識される重複しないフィールドの数です。
    protected int[]
    このカレンダで現在設定されている時間に対するカレンダ・フィールド値です。
    static final int
    金曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、午前または午後の何時かを示します。
    static final int
    getおよびsetのためのフィールド値で、時間を示します。
    protected boolean[]
    指定されたカレンダ・フィールドがカレンダで設定されているかどうかを示すフラグです。
    protected boolean
    timeの値が有効である場合はtrueです。
    static final int
    グレゴリオ暦とユリウス暦の年の最初の月を示すCalendar.MONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の7番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の6番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    Calendar.LONG_FORMATと同等であるgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    フォーマットに使用される長い名前を示す、getDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    独立して使用される長い名前(カレンダ・ヘッダーとしての月の名前など)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
    static final int
    グレゴリオ暦とユリウス暦の年の3番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の5番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、ミリ秒を示します。
    static final int
    getおよびsetのためのフィールド値で、分を示します。
    static final int
    月曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、月を示します。
    static final int
    フォーマットに使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    独立して使用される縮小名を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    グレゴリオ暦とユリウス暦の年の11番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    グレゴリオ暦とユリウス暦の年の10番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    正午から深夜零時の前までの時間を示すCalendar.AM_PMフィールドの値です。
    static final int
    土曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、秒を示します。
    static final int
    グレゴリオ暦とユリウス暦の年の9番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    Calendar.SHORT_FORMATと同等であるgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    フォーマットに使用される短い名前を示すgetDisplayNameおよびgetDisplayNamesのスタイル指示子です。
    static final int
    独立して使用される短い名前(月の略称やカレンダ・ヘッダーなど)を示すgetDisplayNameおよびgetDisplayNamesのスタイル指定子です。
    static final int
    日曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    static final int
    木曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    protected long
    このカレンダで現在設定されている時間です。1970年1月1日0:00:00 (グリニッジ標準時)からの経過ミリ秒数で表されます。
    static final int
    火曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    static final int
    13番目の月を示すCalendar.MONTHフィールドの値です。
    static final int
    水曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。
    static final int
    getおよびsetのためのフィールド値で、現在の月の週番号を示します。
    static final int
    getおよびsetのためのフィールド値で、現在の年の週番号を示します。
    static final int
    getおよびsetのためのフィールド値で、年を示します。
    static final int
    getおよびsetのためのフィールド値で、GMTから直接計算したオフセットをミリ秒単位で示します。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    デフォルトのFORMATロケールでデフォルト・タイム・ゾーンの現在の時間を使用してデフォルトのGregorianCalendarを構築します。
    GregorianCalendar(int year, int month, int dayOfMonth)
    デフォルト・ロケールでデフォルト・タイム・ゾーンの指定された日付に基づいてGregorianCalendarを構築します。
    GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
    デフォルト・ロケールでデフォルト・タイム・ゾーンの指定された日付と時間に基づいてGregorianCalendarを構築します。
    GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
    デフォルト・ロケールでデフォルト・タイム・ゾーンの指定された日付と時刻に基づいてGregorianCalendarを構築します。
    指定されたロケールでデフォルト・タイム・ゾーンの現在の時間に基づいてGregorianCalendarを構築します。
    デフォルトのFORMATロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。
    指定されたロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    add(int field, int amount)
    カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。
    protected void
    時間値(元期からのミリ秒単位のオフセット)をカレンダ・フィールド値に変換します。
    protected void
    カレンダ・フィールド値を時間値(元期からのミリ秒単位のオフセット)に変換します。
    boolean
    このGregorianCalendarを指定されたObjectと比較します。
    ZonedDateTimeオブジェクトからデフォルトのロケールを使ってGregorianCalendarのインスタンスを取得します。
    int
    getActualMaximum(int field)
    このカレンダ・フィールドが持つことのできる最大値を返します。このとき、指定された時間値と、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。
    int
    getActualMinimum(int field)
    このカレンダ・フィールドが持つことのできる最小値を返します。このとき、指定された時間値と、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。
    カレンダ・タイプとして"gregory"を返します。
    int
    getGreatestMinimum(int field)
    このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。
    final Date
    グレゴリオ暦の切換え日を取得します。
    int
    getLeastMaximum(int field)
    このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。
    int
    getMaximum(int field)
    このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。
    int
    getMinimum(int field)
    このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。
    int
    このGregorianCalendarで表される暦週の基準年に含まれる週数を返します。
    int
    このGregorianCalendarで表される暦週の基準年を返します。
    int
    このGregorianCalendarオブジェクトのハッシュ・コードを生成します。
    boolean
    isLeapYear(int year)
    指定された年が、うるう年かどうかを判定します。
    final boolean
    このGregorianCalendarが暦週日付をサポートしていることを示すtrueを返します。
    void
    roll(int field, boolean up)
    大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に加算または減算します。
    void
    roll(int field, int amount)
    大きいフィールドを変更せずに、符号付きの量を指定されたカレンダ・フィールドに加えます。
    void
    GregorianCalendarの切換え日を設定します。
    void
    setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
    このGregorianCalendarを日付指示子 - weekYearweekOfYear、およびdayOfWeekで指定された日付に設定します。
    このオブジェクトを、時系列上でこのGregorianCalendarと同じ時点を表すZonedDateTimeに変換します。

    クラス Calendarで宣言されたメソッド

    after, before, clear, clear, clone, compareTo, complete, get, getAvailableCalendarTypes, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, getTimeZone, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, setTimeZone, toInstant, toString
    修飾子と型
    メソッド
    説明
    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
    カレンダ・フィールドの未設定フィールドに値を入れます。
    int
    get(int field)
    指定されたカレンダ・フィールドの値を返します。
    static Set<String>
    実行時環境でCalendarによってサポートされるすべてのカレンダ・タイプを含む変更不可能なSetを返します。
    static Locale[]
    このクラスのgetInstanceメソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。
    getDisplayName(int field, int style, Locale locale)
    指定されたstylelocaleのカレンダfield値の文字列表現を返します。
    getDisplayNames(int field, int style, Locale locale)
    指定されたstyleおよびlocaleのカレンダfieldのすべての名前と、それに対応するフィールド値を含むMapを返します。
    int
    週の最初の曜日が何であるかを取得します。たとえば、米国ではSUNDAY、フランスではMONDAYです。
    static Calendar
    デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得します。
    static Calendar
    デフォルトのタイムゾーンおよび指定されたロケールを使用してカレンダを取得します。
    static Calendar
    指定されたタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。
    static Calendar
    getInstance(TimeZone zone, Locale aLocale)
    指定されたタイムゾーンおよびロケールを使用してカレンダを取得します。
    int
    年の最初の週に必要な最小日数を取得します。たとえば、最初の週が、年の第1週の1日目を含むものとして定義されている場合、このメソッドは1を返します。
    final Date
    このCalendarの時間値(元期からのミリ秒単位のオフセット)を表すDateオブジェクトを返します。
    long
    このCalendarの時間の値をミリ秒で戻します。
    タイムゾーンを取得します。
    protected final int
    internalGet(int field)
    指定されたカレンダ・フィールドの値を返します。
    boolean
    日付/時間の解釈が厳密でないかどうかを指定します。
    final boolean
    isSet(int field)
    指定されたカレンダ・フィールドが値セットを保持するかどうかを判定します(getメソッド呼出しでトリガーされる内部フィールド計算によって値が設定された場合を含む)。
    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
    指定されたタイムゾーン値を使用してタイムゾーンを設定します。
    final Instant
    このオブジェクトをInstantに変換します。
    カレンダの文字列表現を返します。

    クラスオブジェクトで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • BC

      public static final int BC
      キリスト紀元より前の期間(BC)を示すERAフィールドの値であり、BCEとも呼ばれます。 BCからADへの移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。
      関連項目:
  • コンストラクタの詳細

    • GregorianCalendar

      public GregorianCalendar()
      デフォルトのFORMATロケールでデフォルト・タイム・ゾーンの現在の時間を使用してデフォルトのGregorianCalendarを構築します。
    • GregorianCalendar

      public GregorianCalendar(TimeZone zone)
      デフォルトのFORMATロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。
      パラメータ:
      zone - 指定されたタイムゾーン。
      スロー:
      NullPointerException - zonenullである場合
    • GregorianCalendar

      public GregorianCalendar(Locale aLocale)
      指定されたロケールでデフォルト・タイム・ゾーンの現在の時間に基づいてGregorianCalendarを構築します。
      パラメータ:
      aLocale - 指定されたロケール。
      スロー:
      NullPointerException - aLocalenullの場合
    • GregorianCalendar

      public GregorianCalendar(TimeZone zone, Locale aLocale)
      指定されたロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。
      パラメータ:
      zone - 指定されたタイムゾーン。
      aLocale - 指定されたロケール。
      スロー:
      NullPointerException - zoneまたはaLocalenullの場合
    • GregorianCalendar

      public GregorianCalendar(int year, int month, int dayOfMonth)
      デフォルト・ロケールでデフォルト・タイム・ゾーンの指定された日付に基づいてGregorianCalendarを構築します。
      パラメータ:
      year - カレンダ内のYEARカレンダ・フィールドの設定に使用する値。
      month - カレンダ内のMONTHカレンダ・フィールドの設定に使用する値。 Month値は0から始まる(1月は0になる)。
      dayOfMonth - カレンダ内のDAY_OF_MONTHカレンダ・フィールドの設定に使用する値。
    • GregorianCalendar

      public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
      デフォルト・ロケールでデフォルト・タイム・ゾーンの指定された日付と時間に基づいてGregorianCalendarを構築します。
      パラメータ:
      year - カレンダ内のYEARカレンダ・フィールドの設定に使用する値。
      month - カレンダ内のMONTHカレンダ・フィールドの設定に使用する値。 Month値は0から始まる(1月は0になる)。
      dayOfMonth - カレンダ内のDAY_OF_MONTHカレンダ・フィールドの設定に使用する値。
      hourOfDay - カレンダ内のHOUR_OF_DAYカレンダ・フィールドの設定に使用する値。
      minute - カレンダ内のMINUTEカレンダ・フィールドの設定に使用する値。
    • GregorianCalendar

      public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
      デフォルト・ロケールでデフォルト・タイム・ゾーンの指定された日付と時刻に基づいてGregorianCalendarを構築します。
      パラメータ:
      year - カレンダ内のYEARカレンダ・フィールドの設定に使用する値。
      month - カレンダ内のMONTHカレンダ・フィールドの設定に使用する値。 Month値は0から始まる(1月は0になる)。
      dayOfMonth - カレンダ内のDAY_OF_MONTHカレンダ・フィールドの設定に使用する値。
      hourOfDay - カレンダ内のHOUR_OF_DAYカレンダ・フィールドの設定に使用する値。
      minute - カレンダ内のMINUTEカレンダ・フィールドの設定に使用する値。
      second - カレンダ内のSECONDカレンダ・フィールドの設定に使用する値。
  • メソッドの詳細

    • setGregorianChange

      public void setGregorianChange(Date date)
      GregorianCalendarの切換え日を設定します。 これは、ユリウス暦からグレゴリオ暦への切換えが発生する時点です。 デフォルトは1582年10月15日(グレゴリオ暦)です。 これ以前の日付はユリウス暦になります。

      純粋なユリウス暦を取得するには、切換え日をDate(Long.MAX_VALUE)に設定します。 純粋なグレゴリオ歴を取得するには、切換え日をDate(Long.MIN_VALUE)に設定します。

      パラメータ:
      date - グレゴリオ暦への変更日付。
    • getGregorianChange

      public final Date getGregorianChange()
      グレゴリオ暦の切換え日を取得します。 これは、ユリウス暦からグレゴリオ暦への切換えが発生する時点です。 デフォルトは1582年10月15日(グレゴリオ暦)です。 これ以前の日付はユリウス暦になります。
      戻り値:
      このGregorianCalendarオブジェクトのグレゴリオ暦への切換え日。
    • isLeapYear

      public boolean isLeapYear(int year)
      指定された年が、うるう年かどうかを判定します。 指定された年がうるう年の場合は、trueが返されます。 BC年の数値を指定する場合は、1 - year numberを指定する必要があります。 たとえば、BC 4年は -3と指定します。
      パラメータ:
      year - 指定する年。
      戻り値:
      指定された年がうるう年の場合はtrue、そうでない場合はfalse
    • getCalendarType

      public String getCalendarType()
      カレンダ・タイプとして"gregory"を返します。
      オーバーライド:
      getCalendarType in class Calendar
      戻り値:
      "gregory"
      導入されたバージョン:
      1.8
      関連項目:
    • equals

      public boolean equals(Object obj)
      このGregorianCalendarを指定されたObjectと比較します。 引数が、このオブジェクトと同じCalendarパラメータおよびグレゴリオ暦切替え日の同じ時刻値(元期からのミリ秒単位のオフセット)を表すGregorianCalendarオブジェクトである場合にのみ、結果はtrueになります。
      オーバーライド:
      equals、クラスCalendar
      パラメータ:
      obj - 比較対象のオブジェクト。
      戻り値:
      このオブジェクトがobjに等しい場合はtrue。それ以外の場合はfalse
      関連項目:
    • hashCode

      public int hashCode()
      このGregorianCalendarオブジェクトのハッシュ・コードを生成します。
      オーバーライド:
      hashCode、クラスCalendar
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • add

      public void add(int field, int amount)
      カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。

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

      Addルール2 小さいフィールドが不変式であると予想される場合に、fieldが変更されてから最小値または最大値が変更されたために、その前の値と等しくならないと、フィールドの値はその予想される値にできるだけ近くなるように調整されます。 小さいフィールドは、小さい時間の単位を表します。 HOURDAY_OF_MONTHよりも小さいフィールドです。 不変式ではないと予想される小さいフィールドは、調整されません。 暦体系では、不変式であると予想されるフィールドが判断されます。

      定義:
      add、クラスCalendar
      パラメータ:
      field - カレンダ・フィールド。
      amount - フィールドに追加される日付または時間の量。
      スロー:
      IllegalArgumentException - fieldZONE_OFFSETDST_OFFSET、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。
      関連項目:
    • roll

      public void roll(int field, boolean up)
      大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に加算または減算します。

      : 1999年12月31日に当初設定されたGregorianCalendarを考えます。 roll(Calendar.MONTH, true)を呼び出すと、カレンダが1999年1月31日に設定されます。 YEARフィールドはMONTHよりも大きいフィールドなので変更されません。

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

      public void roll(int field, int amount)
      大きいフィールドを変更せずに、符号付きの量を指定されたカレンダ・フィールドに加えます。 負のローリング量は、大きいフィールドを変更せずにフィールドから減算することを意味します。 指定された量が0の場合、このメソッドは何も実行しません。

      このメソッドは、量を追加する前にCalendar.complete()を呼び出して、すべてのカレンダ・フィールドを正規化します。 厳密モードで範囲外の値を保持するカレンダ・フィールドが存在する場合、IllegalArgumentExceptionがスローされます。

      : 1999年8月31日に当初設定されたGregorianCalendarを考えます。 roll(Calendar.MONTH, 8)を呼び出すと、カレンダが1999年4月30日に設定されます。 GregorianCalendarを使用すると、DAY_OF_MONTHフィールドは4月においては31日になりません。 DAY_OF_MONTHはもっとも近い有効値である30に設定されます。 YEARフィールドではMONTHフィールドより大きいので、1999の値を維持します。

      : 最初に1999年6月6日日曜日に設定されたGregorianCalendarについて考えます。 roll(Calendar.WEEK_OF_MONTH, -1)を呼び出すと、カレンダが1999年6月1日火曜日に設定され、add(Calendar.WEEK_OF_MONTH, -1)を呼び出すと、カレンダが1999年5月30日日曜日に設定されます。 これは、ロール・ルールで追加の制限が加えられるためです。WEEK_OF_MONTHがロールされるときにMONTHを変更すべきではありません。 Addルール1とともに使用すると、結果の日付は6月1日火曜日から6月5日土曜日までになる必要があります。 Addルール2に従って、WEEK_OF_MONTHを変更するときに不変式DAY_OF_WEEKが、日曜日にもっとも近い可能値である火曜日に設定されます(日曜日が週の最初の曜日の場合)。

      オーバーライド:
      roll、クラスCalendar
      パラメータ:
      field - カレンダ・フィールド。
      amount - fieldに追加する指定された量。
      スロー:
      IllegalArgumentException - fieldZONE_OFFSETDST_OFFSET、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。
      導入されたバージョン:
      1.2
      関連項目:
    • getMinimum

      public int getMinimum(int field)
      このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。 最小値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetメソッドが返す最小値として定義されます。
      定義:
      getMinimum、クラスCalendar
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの最小値。
      関連項目:
    • getMaximum

      public int getMaximum(int field)
      このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。 最大値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetメソッドが返す最大値として定義されます。
      定義:
      getMaximum、クラスCalendar
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドの最大値。
      関連項目:
    • getGreatestMinimum

      public int getGreatestMinimum(int field)
      このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。 最大最小値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetActualMinimum(int)メソッドが返す最大値として定義されます。
      定義:
      getGreatestMinimum、クラスCalendar
      パラメータ:
      field - カレンダ・フィールド。
      戻り値:
      指定されたカレンダ・フィールドのもっとも大きい最小値。
      関連項目:
    • getLeastMaximum

      public int getLeastMaximum(int field)
      このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。 最小最大値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetActualMaximum(int)メソッドが返す最小値として定義されます。
      定義:
      getLeastMaximum、クラスCalendar
      パラメータ:
      field - カレンダ・フィールド
      戻り値:
      指定されたカレンダ・フィールドの最小最大値。
      関連項目:
    • getActualMinimum

      public int getActualMinimum(int field)
      このカレンダ・フィールドが持つことのできる最小値を返します。このとき、指定された時間値と、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。

      たとえば、グレゴリオ暦の変更日が1970年1月10日で、このGregorianCalendarが1970年1月20日だとすると、DAY_OF_MONTHフィールドの実際の最小値は10になります。これは、1970年1月10日の前日が1996年12月27日(ユリウス暦で)になるためです。 したがって、1969年12月28日から1970年1月9日までは存在しません。

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

      public int getActualMaximum(int field)
      このカレンダ・フィールドが持つことのできる最大値を返します。このとき、指定された時間値と、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。 たとえば、このインスタンスの日付が2004年2月1日だとすると、DAY_OF_MONTHフィールドの実際の最大値は29になります。これは、2004年がうるう年のため、このインスタンスの日付が2005年2月1日であれば、この値は28になります。

      このメソッドは、暦週の基準年でなく、YEAR (暦年)の値に基づいてWEEK_OF_YEARの最大値を計算します。 getWeeksInWeekYear()をコールして、このGregorianCalendarの週年の WEEK_OF_YEARの最大値を取得します。

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

      public final boolean isWeekDateSupported()
      このGregorianCalendarが暦週日付をサポートしていることを示すtrueを返します。
      オーバーライド:
      isWeekDateSupported、クラスCalendar
      戻り値:
      true ((常時))
      導入されたバージョン:
      1.7
      関連項目:
    • getWeekYear

      public int getWeekYear()
      このGregorianCalendarで表される暦週の基準年を返します。 特定の暦週の基準年において、第1週から最大の週番号までの間にある各週の各日付では、暦週の基準年の値が同じになり、この値はYEAR (暦年)の値よりも1年前またはあとになることがあります。

      このメソッドは、暦週の基準年を計算する前にCalendar.complete()を呼び出します。

      オーバーライド:
      getWeekYear、クラスCalendar
      戻り値:
      このGregorianCalendarで表される暦週の基準年。 ERA値がBCの場合、年は0または負の値で表現され、たとえばBC 1は0、BC 2は -1、BC 3は -2などのようになります。
      スロー:
      IllegalArgumentException - いずれかのカレンダ・フィールドが厳密モードで無効な場合。
      導入されたバージョン:
      1.7
      関連項目:
    • setWeekDate

      public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
      このGregorianCalendarを日付指示子 - weekYearweekOfYear、およびdayOfWeekで指定された日付に設定します。weekOfYearWEEK_OF_YEARの番号付けに従います。 dayOfWeek値は、DAY_OF_WEEKのいずれかの値(SUNDAYからSATURDAYまで)である必要があります。

      数値による曜日の表現はISO 8601規格と異なっていること、およびweekOfYearの番号付けは getFirstDayOfWeek()MONDAY getMinimalDaysInFirstWeek()が4の場合にこの規格に準拠することに注意してください。

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

      weekOfYearweekYear内の有効な週番号の範囲外である場合は、weekYearおよびweekOfYear値が非厳密モードで調整されるか、IllegalArgumentExceptionが厳密モードでスローされます。

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

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

      たとえば、このGregorianCalendarの日付が2008年12月31日の場合、ISO 8601準拠の設定では、このメソッドは、2008年12月29日から2010年1月3日までの期間に相当する53を返しますが、getActualMaximum(WEEK_OF_YEAR)の場合は2007年12月31日から2008年12月28日までの期間に相当する52を返します。

      オーバーライド:
      getWeeksInWeekYear、クラスCalendar
      戻り値:
      暦週の基準年に含まれる週数。
      導入されたバージョン:
      1.7
      関連項目:
    • computeFields

      protected void computeFields()
      時間値(元期からのミリ秒単位のオフセット)をカレンダ・フィールド値に変換します。 時間は最初に再計算されません。時間、フィールドの順に再計算するには、completeメソッドを呼び出します。
      定義:
      computeFields、クラスCalendar
      関連項目:
    • computeTime

      protected void computeTime()
      カレンダ・フィールド値を時間値(元期からのミリ秒単位のオフセット)に変換します。
      定義:
      computeTime、クラスCalendar
      スロー:
      IllegalArgumentException - 無効なカレンダ・フィールドがある場合。
      関連項目:
    • toZonedDateTime

      public ZonedDateTime toZonedDateTime()
      このオブジェクトを、時系列上でこのGregorianCalendarと同じ時点を表すZonedDateTimeに変換します。

      このオブジェクトはユリウス/グレゴリオ暦の切換え日をサポートしていますが、ZonedDateTimeはサポートしていないため、結果となる年、月、および日が異なる値になる可能性があります。 結果は、修正ユリウス日の同じ値でもある、ISO暦体系での正しい日付を表します。

      戻り値:
      時系列上でこのグレゴリオ暦と同じ時点を表すゾーン付き日付/時間
      導入されたバージョン:
      1.8
    • from

      public static GregorianCalendar from(ZonedDateTime zdt)
      ZonedDateTimeオブジェクトからデフォルトのロケールを使ってGregorianCalendarのインスタンスを取得します。

      ZonedDateTimeはユリウス/グレゴリオ暦の切換え日をサポートしておらず、ISO暦体系を使用するため、返されるGregorianCalendarは純粋なグレゴリオ暦であり、週定義にはISO 8601標準が使われています。その標準では、FirstDayOfWeekMONDAYであり、MinimalDaysInFirstWeekの値は4です。

      ZoneDateTimeは、GregorianCalendarに比べ、時系列上の将来および過去のより詳細な時点を格納できます。 このシナリオでは、このメソッドはIllegalArgumentException例外をスローします。

      パラメータ:
      zdt - 変換対象のゾーン付き日付/時間オブジェクト
      戻り値:
      時系列上で指定されたゾーン付き日付/時間と同じ時点を表すグレゴリオ暦
      スロー:
      NullPointerException - zdtがnullである場合
      IllegalArgumentException - そのゾーン付き日付/時間がGregorianCalendarとして表すには大きすぎる場合
      導入されたバージョン:
      1.8