クラスGregorianCalendar
- すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<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()がSUNDAYでgetMinimalDaysInFirstWeek()が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は、各カレンダ・フィールドに対して次のデフォルト値を使用します。
| フィールド | デフォルト値 |
|---|---|
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 classCalendar.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 intgetおよびsetのためのフィールド値で、HOURが正午より前であるかあとであるかを示します。static final intグレゴリオ暦とユリウス暦の年の4番目の月を示すCalendar.MONTHフィールドの値です。protected booleanfields[]が現在設定されている時間と同期をとっている場合はtrueです。static final intグレゴリオ暦とユリウス暦の年の8番目の月を示すCalendar.MONTHフィールドの値です。static final intgetおよびsetのためのフィールド値で、月の日を示します。static final intgetおよびsetのためのフィールド値で、月の日を示します。static final intgetおよびsetのためのフィールド値で、曜日を示します。static final intgetおよびsetのためのフィールド値で、現在の月の何度目の曜日かを示します。static final intgetおよびsetのためのフィールド値で、現在の年の何日目かを示します。static final intグレゴリオ暦とユリウス暦の年の12番目の月を示すCalendar.MONTHフィールドの値です。static final intgetおよびsetのためのフィールド値で、夏時間のオフセットをミリ秒単位で示します。static final intgetおよびsetのためのフィールド値で、ユリウス暦のADまたはBCなどの年代を示します。static final intグレゴリオ暦とユリウス暦の年の2番目の月を示すCalendar.MONTHフィールドの値です。static final intgetおよびsetによって認識される重複しないフィールドの数です。protected int[]このカレンダで現在設定されている時間に対するカレンダ・フィールド値です。static final int金曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。static final intgetおよびsetのためのフィールド値で、午前または午後の何時かを示します。static final intgetおよびsetのためのフィールド値で、時間を示します。protected boolean[]指定されたカレンダ・フィールドがカレンダで設定されているかどうかを示すフラグです。protected booleantimeの値が有効である場合はtrueです。static final intグレゴリオ暦とユリウス暦の年の最初の月を示すCalendar.MONTHフィールドの値です。static final intグレゴリオ暦とユリウス暦の年の7番目の月を示すCalendar.MONTHフィールドの値です。static final intグレゴリオ暦とユリウス暦の年の6番目の月を示すCalendar.MONTHフィールドの値です。static final intCalendar.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 intgetおよびsetのためのフィールド値で、ミリ秒を示します。static final intgetおよびsetのためのフィールド値で、分を示します。static final int月曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。static final intgetおよび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 intgetおよびsetのためのフィールド値で、秒を示します。static final intグレゴリオ暦とユリウス暦の年の9番目の月を示すCalendar.MONTHフィールドの値です。static final intCalendar.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 int13番目の月を示すCalendar.MONTHフィールドの値です。static final int水曜日を示すCalendar.DAY_OF_WEEKフィールドの値です。static final intgetおよびsetのためのフィールド値で、現在の月の週番号を示します。static final intgetおよびsetのためのフィールド値で、現在の年の週番号を示します。static final intgetおよびsetのためのフィールド値で、年を示します。static final intgetおよび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(Locale aLocale) 指定されたロケールでデフォルト・タイム・ゾーンの現在の時間に基づいてGregorianCalendarを構築します。GregorianCalendar(TimeZone zone) デフォルトのFORMATロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。GregorianCalendar(TimeZone zone, Locale aLocale) 指定されたロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明voidadd(int field, int amount) カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。protected void時間値(元期からのミリ秒単位のオフセット)をカレンダ・フィールド値に変換します。protected voidカレンダ・フィールド値を時間値(元期からのミリ秒単位のオフセット)に変換します。booleanこのGregorianCalendarを指定されたObjectと比較します。static GregorianCalendarfrom(ZonedDateTime zdt) ZonedDateTimeオブジェクトからデフォルトのロケールを使ってGregorianCalendarのインスタンスを取得します。intgetActualMaximum(int field) このカレンダ・フィールドが持つことのできる最大値を返します。このとき、指定された時間値と、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。intgetActualMinimum(int field) このカレンダ・フィールドが持つことのできる最小値を返します。このとき、指定された時間値と、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。カレンダ・タイプとして"gregory"を返します。intgetGreatestMinimum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。final Dateグレゴリオ暦の切換え日を取得します。intgetLeastMaximum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。intgetMaximum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。intgetMinimum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。intこのGregorianCalendarで表される暦週の基準年に含まれる週数を返します。intこのGregorianCalendarで表される暦週の基準年を返します。inthashCode()このGregorianCalendarオブジェクトのハッシュ・コードを生成します。booleanisLeapYear(int year) 指定された年が、うるう年かどうかを判定します。final booleanこのGregorianCalendarが暦週日付をサポートしていることを示すtrueを返します。voidroll(int field, boolean up) 大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に加算または減算します。voidroll(int field, int amount) 大きいフィールドを変更せずに、符号付きの量を指定されたカレンダ・フィールドに加えます。voidsetGregorianChange(Date date) GregorianCalendarの切換え日を設定します。voidsetWeekDate(int weekYear, int weekOfYear, int dayOfWeek) このGregorianCalendarを日付指示子 -weekYear、weekOfYear、および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このCalendarが、指定されたObjectの表す時間よりあとの時間を表すかどうかを返します。booleanこのCalendarが、指定されたObjectの表す時間より前の時間を表すかどうかを返します。final voidclear()このCalendarのすべてのカレンダ・フィールド値および時間値(元期からのミリ秒単位のオフセット)を未定義に設定します。final voidclear(int field) このCalendarの指定されたカレンダ・フィールド値および時間値(元期からのミリ秒単位のオフセット)を未定義に設定します。clone()このオブジェクトのコピーを作成して、返します。int2つのCalendarオブジェクトで表される時間値(元期からのミリ秒単位のオフセット)を比較します。protected voidcomplete()カレンダ・フィールドの未設定フィールドに値を入れます。intget(int field) 指定されたカレンダ・フィールドの値を返します。実行時環境でCalendarによってサポートされるすべてのカレンダ・タイプを含む変更不可能なSetを返します。static Locale[]このクラスのgetInstanceメソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。getDisplayName(int field, int style, Locale locale) 指定されたstyleとlocaleのカレンダfield値の文字列表現を返します。getDisplayNames(int field, int style, Locale locale) 指定されたstyleおよびlocaleのカレンダfieldのすべての名前と、それに対応するフィールド値を含むMapを返します。int週の最初の曜日が何であるかを取得します。たとえば、米国ではSUNDAY、フランスではMONDAYです。static Calendarデフォルトのタイムゾーンおよびロケールを使用してカレンダを取得します。static CalendargetInstance(Locale aLocale) デフォルトのタイムゾーンおよび指定されたロケールを使用してカレンダを取得します。static CalendargetInstance(TimeZone zone) 指定されたタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。static CalendargetInstance(TimeZone zone, Locale aLocale) 指定されたタイムゾーンおよびロケールを使用してカレンダを取得します。int年の最初の週に必要な最小日数を取得します。たとえば、最初の週が、年の第1週の1日目を含むものとして定義されている場合、このメソッドは1を返します。final DategetTime()このCalendarの時間値(元期からのミリ秒単位のオフセット)を表すDateオブジェクトを返します。longこのCalendarの時間の値をミリ秒で戻します。タイムゾーンを取得します。protected final intinternalGet(int field) 指定されたカレンダ・フィールドの値を返します。boolean日付/時間の解釈が厳密でないかどうかを指定します。final booleanisSet(int field) 指定されたカレンダ・フィールドが値セットを保持するかどうかを判定します(getメソッド呼出しでトリガーされる内部フィールド計算によって値が設定された場合を含む)。voidset(int field, int value) 指定されたカレンダ・フィールドを指定された値に設定します。final voidset(int year, int month, int date) カレンダ・フィールドYEAR、MONTH、およびDAY_OF_MONTHの値を設定します。final voidset(int year, int month, int date, int hourOfDay, int minute) カレンダ・フィールドYEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、およびMINUTEの値を設定します。final voidset(int year, int month, int date, int hourOfDay, int minute, int second) フィールドYEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTEおよびSECONDの値を設定します。voidsetFirstDayOfWeek(int value) 週の最初の曜日が何であるかを設定します。たとえば、米国ではSUNDAY、フランスではMONDAYです。voidsetLenient(boolean lenient) 日付/時間の解釈を厳密に行うかどうかを設定します。voidsetMinimalDaysInFirstWeek(int value) 年の最初の週に必要な最小日数を設定します。たとえば、最初の週が、年の最初の月の最初の日を含むものとして定義されている場合は、値1でこのメソッドを呼び出します。final voidこのCalendarの時間を、指定されたDateに設定します。voidsetTimeInMillis(long millis) Calendarの現在の時間を、指定されたlong値から設定します。voidsetTimeZone(TimeZone value) 指定されたタイムゾーン値を使用してタイムゾーンを設定します。final InstantこのオブジェクトをInstantに変換します。toString()カレンダの文字列表現を返します。クラスオブジェクトで宣言されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait修飾子と型メソッド説明protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(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,... のように行われます。- 関連項目:
-
AD
public static final int ADキリスト紀元(西暦)を示すERAフィールドの値であり、CEとも呼ばれます。BCからADへの移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。- 関連項目:
-
-
コンストラクタの詳細
-
GregorianCalendar
public GregorianCalendar()デフォルトのFORMATロケールでデフォルト・タイム・ゾーンの現在の時間を使用してデフォルトのGregorianCalendarを構築します。 -
GregorianCalendar
public GregorianCalendar(TimeZone zone) デフォルトのFORMATロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。- パラメータ:
zone- 指定されたタイムゾーン。- スロー:
NullPointerException-zoneがnullである場合
-
GregorianCalendar
public GregorianCalendar(Locale aLocale) 指定されたロケールでデフォルト・タイム・ゾーンの現在の時間に基づいてGregorianCalendarを構築します。- パラメータ:
aLocale- 指定されたロケール。- スロー:
NullPointerException-aLocaleがnullの場合
-
GregorianCalendar
指定されたロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendarを構築します。- パラメータ:
zone- 指定されたタイムゾーン。aLocale- 指定されたロケール。- スロー:
NullPointerException-zoneまたはaLocaleがnullの場合
-
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"を返します。- オーバーライド:
getCalendarTypein classCalendar- 戻り値:
"gregory"- 導入されたバージョン:
- 1.8
- 関連項目:
-
equals
-
hashCode
-
add
public void add(int field, int amount) カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。Addルール1。 呼出しが
fieldで発生したモジュロ・オーバーフローamountになる前に、呼出しでfieldの値を引いたあとのfieldの値です。 オーバーフローは、フィールドの値が範囲を超え、その結果、次の大きいフィールドが増分または減分されて、フィールドの値がその範囲に入るよう調整された場合に発生します。Addルール2。 小さいフィールドが不変式であると予想される場合に、
fieldが変更されてから最小値または最大値が変更されたために、その前の値と等しくならないと、フィールドの値はその予想される値にできるだけ近くなるように調整されます。 小さいフィールドは、小さい時間の単位を表します。HOURはDAY_OF_MONTHよりも小さいフィールドです。 不変式ではないと予想される小さいフィールドは、調整されません。 暦体系では、不変式であると予想されるフィールドが判断されます。- 定義:
add、クラスCalendar- パラメータ:
field- カレンダ・フィールド。amount- フィールドに追加される日付または時間の量。- スロー:
IllegalArgumentException-fieldがZONE_OFFSET、DST_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-fieldがZONE_OFFSET、DST_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-fieldがZONE_OFFSET、DST_OFFSET、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
getMinimum
public int getMinimum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。 最小値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetメソッドが返す最小値として定義されます。- 定義:
getMinimum、クラスCalendar- パラメータ:
field- カレンダ・フィールド。- 戻り値:
- 指定されたカレンダ・フィールドの最小値。
- 関連項目:
-
getMaximum
public int getMaximum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。 最大値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetメソッドが返す最大値として定義されます。- 定義:
getMaximum、クラスCalendar- パラメータ:
field- カレンダ・フィールド。- 戻り値:
- 指定されたカレンダ・フィールドの最大値。
- 関連項目:
-
getGreatestMinimum
public int getGreatestMinimum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。 最大最小値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetActualMinimum(int)メソッドが返す最大値として定義されます。- 定義:
getGreatestMinimum、クラスCalendar- パラメータ:
field- カレンダ・フィールド。- 戻り値:
- 指定されたカレンダ・フィールドのもっとも大きい最小値。
- 関連項目:
-
getLeastMaximum
public int getLeastMaximum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。 最小最大値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetActualMaximum(int)メソッドが返す最小値として定義されます。- 定義:
getLeastMaximum、クラスCalendar- パラメータ:
field- カレンダ・フィールド- 戻り値:
- 指定されたカレンダ・フィールドの最小最大値。
- 関連項目:
-
getActualMinimum
public int getActualMinimum(int field) このカレンダ・フィールドが持つことのできる最小値を返します。このとき、指定された時間値と、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、および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) このカレンダ・フィールドが持つことのできる最大値を返します。このとき、指定された時間値と、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、および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を日付指示子 -weekYear、weekOfYear、およびdayOfWeekで指定された日付に設定します。weekOfYearはWEEK_OF_YEARの番号付けに従います。dayOfWeek値は、DAY_OF_WEEKのいずれかの値(SUNDAYからSATURDAYまで)である必要があります。数値による曜日の表現はISO 8601規格と異なっていること、および
weekOfYearの番号付けはgetFirstDayOfWeek()がMONDAYでgetMinimalDaysInFirstWeek()が4の場合にこの規格に準拠することに注意してください。setメソッドと異なり、すべてのカレンダ・フィールドおよび時間値のインスタントは返された時点で計算されます。weekOfYearがweekYear内の有効な週番号の範囲外である場合は、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標準が使われています。その標準では、FirstDayOfWeekはMONDAYであり、MinimalDaysInFirstWeekの値は4です。ZoneDateTimeは、GregorianCalendarに比べ、時系列上の将来および過去のより詳細な時点を格納できます。 このシナリオでは、このメソッドはIllegalArgumentException例外をスローします。- パラメータ:
zdt- 変換対象のゾーン付き日付/時間オブジェクト- 戻り値:
- 時系列上で指定されたゾーン付き日付/時間と同じ時点を表すグレゴリオ暦
- スロー:
NullPointerException-zdtがnullである場合IllegalArgumentException- そのゾーン付き日付/時間がGregorianCalendarとして表すには大きすぎる場合- 導入されたバージョン:
- 1.8
-