GregorianCalendar (Java SE 11 & JDK 11 ) (original) (raw)
- すべての実装されたインタフェース:
[Serializable](../io/Serializable.html)
,[Cloneable](../lang/Cloneable.html)
,[Comparable](../lang/Comparable.html)<[Calendar](Calendar.html)>
public class GregorianCalendar
extends CalendarGregorianCalendar
は、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
は、各カレンダ・フィールドに対して次のデフォルト値を使用します。
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)/(60601000)));
System.out.println("DST_OFFSET: "
+ (calendar.get(Calendar.DST_OFFSET)/(60601000)));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)/(60601000))); // in hours
System.out.println("DST_OFFSET: "
+ (calendar.get(Calendar.DST_OFFSET)/(60601000))); // in hours
ネストされたクラスのサマリー
* ### クラス java.util.[Calendar](Calendar.html)で宣言されたネストされたクラス/インタフェース `[Calendar.Builder](Calendar.Builder.html)`
フィールドのサマリー
フィールド
修飾子と型 フィールド 説明 static int AD キリスト紀元(西暦)を示すERAフィールドの値であり、CEとも呼ばれます。 static int BC キリスト紀元より前の期間(BC)を示すERAフィールドの値であり、BCEとも呼ばれます。 * ### クラス java.util.[Calendar](Calendar.html)で宣言されたフィールド `[ALL_STYLES](Calendar.html#ALL%5FSTYLES), [AM](Calendar.html#AM), [AM_PM](Calendar.html#AM%5FPM), [APRIL](Calendar.html#APRIL), [areFieldsSet](Calendar.html#areFieldsSet), [AUGUST](Calendar.html#AUGUST), [DATE](Calendar.html#DATE), [DAY_OF_MONTH](Calendar.html#DAY%5FOF%5FMONTH), [DAY_OF_WEEK](Calendar.html#DAY%5FOF%5FWEEK), [DAY_OF_WEEK_IN_MONTH](Calendar.html#DAY%5FOF%5FWEEK%5FIN%5FMONTH), [DAY_OF_YEAR](Calendar.html#DAY%5FOF%5FYEAR), [DECEMBER](Calendar.html#DECEMBER), [DST_OFFSET](Calendar.html#DST%5FOFFSET), [ERA](Calendar.html#ERA), [FEBRUARY](Calendar.html#FEBRUARY), [FIELD_COUNT](Calendar.html#FIELD%5FCOUNT), [fields](Calendar.html#fields), [FRIDAY](Calendar.html#FRIDAY), [HOUR](Calendar.html#HOUR), [HOUR_OF_DAY](Calendar.html#HOUR%5FOF%5FDAY), [isSet](Calendar.html#isSet), [isTimeSet](Calendar.html#isTimeSet), [JANUARY](Calendar.html#JANUARY), [JULY](Calendar.html#JULY), [JUNE](Calendar.html#JUNE), [LONG](Calendar.html#LONG), [LONG_FORMAT](Calendar.html#LONG%5FFORMAT), [LONG_STANDALONE](Calendar.html#LONG%5FSTANDALONE), [MARCH](Calendar.html#MARCH), [MAY](Calendar.html#MAY), [MILLISECOND](Calendar.html#MILLISECOND), [MINUTE](Calendar.html#MINUTE), [MONDAY](Calendar.html#MONDAY), [MONTH](Calendar.html#MONTH), [NARROW_FORMAT](Calendar.html#NARROW%5FFORMAT), [NARROW_STANDALONE](Calendar.html#NARROW%5FSTANDALONE), [NOVEMBER](Calendar.html#NOVEMBER), [OCTOBER](Calendar.html#OCTOBER), [PM](Calendar.html#PM), [SATURDAY](Calendar.html#SATURDAY), [SECOND](Calendar.html#SECOND), [SEPTEMBER](Calendar.html#SEPTEMBER), [SHORT](Calendar.html#SHORT), [SHORT_FORMAT](Calendar.html#SHORT%5FFORMAT), [SHORT_STANDALONE](Calendar.html#SHORT%5FSTANDALONE), [SUNDAY](Calendar.html#SUNDAY), [THURSDAY](Calendar.html#THURSDAY), [time](Calendar.html#time), [TUESDAY](Calendar.html#TUESDAY), [UNDECIMBER](Calendar.html#UNDECIMBER), [WEDNESDAY](Calendar.html#WEDNESDAY), [WEEK_OF_MONTH](Calendar.html#WEEK%5FOF%5FMONTH), [WEEK_OF_YEAR](Calendar.html#WEEK%5FOF%5FYEAR), [YEAR](Calendar.html#YEAR), [ZONE_OFFSET](Calendar.html#ZONE%5FOFFSET)`
コンストラクタのサマリー
コンストラクタ
コンストラクタ 説明 GregorianCalendar() デフォルトの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を構築します。 メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド
修飾子と型 メソッド 説明 void add(int field, int amount) カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。 protected void computeFields() 時間値(元期からのミリ秒単位のオフセット)をカレンダ・フィールド値に変換します。 protected void computeTime() カレンダ・フィールド値を時間値(元期からのミリ秒単位のオフセット)に変換します。 boolean equals(Object obj) このGregorianCalendarを指定されたObjectと比較します。 static GregorianCalendar from(ZonedDateTime zdt) ZonedDateTimeオブジェクトからデフォルトのロケールを使ってGregorianCalendarのインスタンスを取得します。 int getActualMaximum(int field) このカレンダ・フィールドが持つことのできる最大値を返します。このとき、指定された時間値と、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。 int getActualMinimum(int field) このカレンダ・フィールドが持つことのできる最小値を返します。このとき、指定された時間値と、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、およびgetTimeZoneの各メソッドの現在値が考慮されます。 String getCalendarType() カレンダ・タイプとして"gregory"を返します。 int getGreatestMinimum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大最小値を返します。 Date getGregorianChange() グレゴリオ暦の切換え日を取得します。 int getLeastMaximum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小最大値を返します。 int getMaximum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最大値を返します。 int getMinimum(int field) このGregorianCalendarインスタンスで指定されたカレンダ・フィールドの最小値を返します。 int getWeeksInWeekYear() このGregorianCalendarで表される暦週の基準年に含まれる週数を返します。 int getWeekYear() このGregorianCalendarで表される暦週の基準年を返します。 int hashCode() このGregorianCalendarオブジェクトのハッシュ・コードを生成します。 boolean isLeapYear(int year) 指定された年が、うるう年かどうかを判定します。 boolean isWeekDateSupported() このGregorianCalendarが暦週日付をサポートしていることを示すtrueを返します。 void roll(int field, boolean up) 大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に加算または減算します。 void roll(int field, int amount) 大きいフィールドを変更せずに、符号付きの量を指定されたカレンダ・フィールドに加えます。 void setGregorianChange(Date date) GregorianCalendarの切換え日を設定します。 void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) このGregorianCalendarを日付指示子 - weekYear、weekOfYear、およびdayOfWeekで指定された日付に設定します。 ZonedDateTime toZonedDateTime() このオブジェクトを、時系列上でこのGregorianCalendarと同じ時点を表すZonedDateTimeに変換します。 * ### クラス java.util.[Calendar](Calendar.html)で宣言されたメソッド `[after](Calendar.html#after%28java.lang.Object%29), [before](Calendar.html#before%28java.lang.Object%29), [clear](Calendar.html#clear%28%29), [clear](Calendar.html#clear%28int%29), [clone](Calendar.html#clone%28%29), [compareTo](Calendar.html#compareTo%28java.util.Calendar%29), [complete](Calendar.html#complete%28%29), [get](Calendar.html#get%28int%29), [getAvailableCalendarTypes](Calendar.html#getAvailableCalendarTypes%28%29), [getAvailableLocales](Calendar.html#getAvailableLocales%28%29), [getDisplayName](Calendar.html#getDisplayName%28int,int,java.util.Locale%29), [getDisplayNames](Calendar.html#getDisplayNames%28int,int,java.util.Locale%29), [getFirstDayOfWeek](Calendar.html#getFirstDayOfWeek%28%29), [getInstance](Calendar.html#getInstance%28%29), [getInstance](Calendar.html#getInstance%28java.util.Locale%29), [getInstance](Calendar.html#getInstance%28java.util.TimeZone%29), [getInstance](Calendar.html#getInstance%28java.util.TimeZone,java.util.Locale%29), [getMinimalDaysInFirstWeek](Calendar.html#getMinimalDaysInFirstWeek%28%29), [getTime](Calendar.html#getTime%28%29), [getTimeInMillis](Calendar.html#getTimeInMillis%28%29), [getTimeZone](Calendar.html#getTimeZone%28%29), [internalGet](Calendar.html#internalGet%28int%29), [isLenient](Calendar.html#isLenient%28%29), [isSet](Calendar.html#isSet%28int%29), [set](Calendar.html#set%28int,int%29), [set](Calendar.html#set%28int,int,int%29), [set](Calendar.html#set%28int,int,int,int,int%29), [set](Calendar.html#set%28int,int,int,int,int,int%29), [setFirstDayOfWeek](Calendar.html#setFirstDayOfWeek%28int%29), [setLenient](Calendar.html#setLenient%28boolean%29), [setMinimalDaysInFirstWeek](Calendar.html#setMinimalDaysInFirstWeek%28int%29), [setTime](Calendar.html#setTime%28java.util.Date%29), [setTimeInMillis](Calendar.html#setTimeInMillis%28long%29), [setTimeZone](Calendar.html#setTimeZone%28java.util.TimeZone%29), [toInstant](Calendar.html#toInstant%28%29), [toString](Calendar.html#toString%28%29)` * ### クラス java.lang.[Object](../lang/Object.html)で宣言されたメソッド `[finalize](../lang/Object.html#finalize%28%29), [getClass](../lang/Object.html#getClass%28%29), [notify](../lang/Object.html#notify%28%29), [notifyAll](../lang/Object.html#notifyAll%28%29), [wait](../lang/Object.html#wait%28%29), [wait](../lang/Object.html#wait%28long%29), [wait](../lang/Object.html#wait%28long,int%29)`
フィールドの詳細
* #### BC public static final int BC キリスト紀元より前の期間(BC)を示す`ERA`フィールドの値であり、BCEとも呼ばれます。 `BC`から`AD`への移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。 関連項目: [Calendar.ERA](Calendar.html#ERA)、[定数フィールド値](../../../constant-values.html#java.util.GregorianCalendar.BC) * #### AD public static final int AD キリスト紀元(西暦)を示す`ERA`フィールドの値であり、CEとも呼ばれます。 `BC`から`AD`への移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。 関連項目: [Calendar.ERA](Calendar.html#ERA)、[定数フィールド値](../../../constant-values.html#java.util.GregorianCalendar.AD)
コンストラクタの詳細
* #### GregorianCalendar public GregorianCalendar() デフォルトの[FORMAT](Locale.Category.html#FORMAT)ロケールでデフォルト・タイム・ゾーンの現在の時間を使用してデフォルトの`GregorianCalendar`を構築します。 * #### GregorianCalendar public GregorianCalendar([TimeZone](TimeZone.html "class in java.util") zone) デフォルトの[FORMAT](Locale.Category.html#FORMAT)ロケールで指定されたタイムゾーンの現在の時間に基づいて`GregorianCalendar`を構築します。 パラメータ: `zone` \- 指定されたタイムゾーン。 * #### GregorianCalendar public GregorianCalendar([Locale](Locale.html "class in java.util") aLocale) 指定されたロケールでデフォルト・タイム・ゾーンの現在の時間に基づいて`GregorianCalendar`を構築します。 パラメータ: `aLocale` \- 指定されたロケール。 * #### GregorianCalendar public GregorianCalendar([TimeZone](TimeZone.html "class in java.util") zone, [Locale](Locale.html "class in java.util") aLocale) 指定されたロケールで指定されたタイムゾーンの現在の時間に基づいて`GregorianCalendar`を構築します。 パラメータ: `zone` \- 指定されたタイムゾーン。 `aLocale` \- 指定されたロケール。 * #### 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.html "class in java.util") date) `GregorianCalendar`の切換え日を設定します。 これは、ユリウス暦からグレゴリオ暦への切換えが発生する時点です。 デフォルトは1582年10月15日(グレゴリオ暦)です。 これ以前の日付はユリウス暦になります。 純粋なユリウス暦を取得するには、切換え日を`Date(Long.MAX_VALUE)`に設定します。 純粋なグレゴリオ歴を取得するには、切換え日を`Date(Long.MIN_VALUE)`に設定します。 パラメータ: `date` \- グレゴリオ暦への変更日付。 * #### getGregorianChange public final [Date](Date.html "class in java.util") 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](../lang/String.html "class in java.lang") getCalendarType() カレンダ・タイプとして`"gregory"`を返します。 オーバーライド: `[getCalendarType](Calendar.html#getCalendarType%28%29)` in class `[Calendar](Calendar.html)` 戻り値: `"gregory"` 導入されたバージョン: 1.8 関連項目: [Locale extensions](Locale.html#def%5Fextensions), [Locale.Builder.setLocale(Locale)](Locale.Builder.html#setLocale%28java.util.Locale%29), [Locale.Builder.setUnicodeLocaleKeyword(String, String)](Locale.Builder.html#setUnicodeLocaleKeyword%28java.lang.String,java.lang.String%29) * #### equals public boolean equals([Object](../lang/Object.html "class in java.lang") obj) この`GregorianCalendar`を指定された`Object`と比較します。 引数が、このオブジェクトと同じ`Calendar`パラメータおよびグレゴリオ暦切替え日の同じ時刻値([元期](Calendar.html#Epoch)からのミリ秒単位のオフセット)を表す`GregorianCalendar`オブジェクトである場合にのみ、結果は`true`になります。 オーバーライド: `[equals](Calendar.html#equals%28java.lang.Object%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `obj` \- 比較対象のオブジェクト。 戻り値: このオブジェクトが`obj`に等しい場合は`true`。それ以外の場合は`false`。 関連項目: [Calendar.compareTo(Calendar)](Calendar.html#compareTo%28java.util.Calendar%29) * #### hashCode public int hashCode() この`GregorianCalendar`オブジェクトのハッシュ・コードを生成します。 オーバーライド: `[hashCode](Calendar.html#hashCode%28%29)`、クラス`[Calendar](Calendar.html)` 戻り値: このオブジェクトのハッシュ・コード値。 関連項目: [Object.equals(java.lang.Object)](../lang/Object.html#equals%28java.lang.Object%29), [System.identityHashCode(java.lang.Object)](../lang/System.html#identityHashCode%28java.lang.Object%29) * #### add public void add(int field, int amount) カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。 _Addルール1_。 呼出しが`field`で発生したモジュロ・オーバーフロー`amount`になる前に、呼出しで`field`の値を引いたあとの`field`の値です。 オーバーフローは、フィールドの値が範囲を超え、その結果、次の大きいフィールドが増分または減分されて、フィールドの値がその範囲に入るよう調整された場合に発生します。 _Addルール2_。 小さいフィールドが不変式であると予想される場合に、`field`が変更されてから最小値または最大値が変更されたために、その前の値と等しくならないと、フィールドの値はその予想される値にできるだけ近くなるように調整されます。 小さいフィールドは、小さい時間の単位を表します。 `HOUR`は`DAY_OF_MONTH`よりも小さいフィールドです。 不変式ではないと予想される小さいフィールドは、調整されません。 暦体系では、不変式であると予想されるフィールドが判断されます。 定義: `[add](Calendar.html#add%28int,int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド。 `amount` \- フィールドに追加される日付または時間の量。 例外: `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- `field`が`ZONE_OFFSET`、`DST_OFFSET`、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。 関連項目: [Calendar.roll(int,int)](Calendar.html#roll%28int,int%29), [Calendar.set(int,int)](Calendar.html#set%28int,int%29) * #### roll public void roll(int field, boolean up) 大きいフィールドを変更せずに指定された時間フィールドの1つの単位の時間を上または下に加算または減算します。 _例_: 1999年12月31日に当初設定された`GregorianCalendar`を考えます。 [roll(Calendar.MONTH, true)](#roll%28int,boolean%29)を呼び出すと、カレンダが1999年1月31日に設定されます。 `YEAR`フィールドは`MONTH`よりも大きいフィールドなので変更されません。 定義: `[roll](Calendar.html#roll%28int,boolean%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `up` \- 指定されたカレンダ・フィールドの値を上へ動かすのか、下へ動かすのかを指定する。 上へ動かす場合は`true`、そうでない場合は`false`を使用する。 `field` \- 時間フィールド。 例外: `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- `field`が`ZONE_OFFSET`、`DST_OFFSET`、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。 関連項目: [add(int,int)](#add%28int,int%29), [Calendar.set(int,int)](Calendar.html#set%28int,int%29) * #### roll public void roll(int field, int amount) 大きいフィールドを変更せずに、符号付きの量を指定されたカレンダ・フィールドに加えます。 負のローリング量は、大きいフィールドを変更せずにフィールドから減算することを意味します。 指定された量が0の場合、このメソッドは何も実行しません。 このメソッドは、量を追加する前に[Calendar.complete()](Calendar.html#complete%28%29)を呼び出して、すべてのカレンダ・フィールドを正規化します。 厳密モードで範囲外の値を保持するカレンダ・フィールドが存在する場合、`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.html#roll%28int,int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド。 `amount` \- `field`に追加する指定された量。 例外: `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- `field`が`ZONE_OFFSET`、`DST_OFFSET`、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。 導入されたバージョン: 1.2 関連項目: [roll(int,boolean)](#roll%28int,boolean%29), [add(int,int)](#add%28int,int%29), [Calendar.set(int,int)](Calendar.html#set%28int,int%29) * #### getMinimum public int getMinimum(int field) 定義: `[getMinimum](Calendar.html#getMinimum%28int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド。 戻り値: 指定されたカレンダ・フィールドの最小値。 関連項目: [getMaximum(int)](#getMaximum%28int%29), [getGreatestMinimum(int)](#getGreatestMinimum%28int%29), [getLeastMaximum(int)](#getLeastMaximum%28int%29), [getActualMinimum(int)](#getActualMinimum%28int%29), [getActualMaximum(int)](#getActualMaximum%28int%29) * #### getMaximum public int getMaximum(int field) 定義: `[getMaximum](Calendar.html#getMaximum%28int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド。 戻り値: 指定されたカレンダ・フィールドの最大値。 関連項目: [getMinimum(int)](#getMinimum%28int%29), [getGreatestMinimum(int)](#getGreatestMinimum%28int%29), [getLeastMaximum(int)](#getLeastMaximum%28int%29), [getActualMinimum(int)](#getActualMinimum%28int%29), [getActualMaximum(int)](#getActualMaximum%28int%29) * #### getGreatestMinimum public int getGreatestMinimum(int field) 定義: `[getGreatestMinimum](Calendar.html#getGreatestMinimum%28int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド。 戻り値: 指定されたカレンダ・フィールドのもっとも大きい最小値。 関連項目: [getMinimum(int)](#getMinimum%28int%29), [getMaximum(int)](#getMaximum%28int%29), [getLeastMaximum(int)](#getLeastMaximum%28int%29), [getActualMinimum(int)](#getActualMinimum%28int%29), [getActualMaximum(int)](#getActualMaximum%28int%29) * #### getLeastMaximum public int getLeastMaximum(int field) 定義: `[getLeastMaximum](Calendar.html#getLeastMaximum%28int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド 戻り値: 指定されたカレンダ・フィールドの最小最大値。 関連項目: [getMinimum(int)](#getMinimum%28int%29), [getMaximum(int)](#getMaximum%28int%29), [getGreatestMinimum(int)](#getGreatestMinimum%28int%29), [getActualMinimum(int)](#getActualMinimum%28int%29), [getActualMaximum(int)](#getActualMaximum%28int%29) * #### getActualMinimum public int getActualMinimum(int field) このカレンダ・フィールドが持つことのできる最小値を返します。このとき、指定された時間値と、[getFirstDayOfWeek](Calendar.html#getFirstDayOfWeek%28%29)、[getMinimalDaysInFirstWeek](Calendar.html#getMinimalDaysInFirstWeek%28%29)、[getGregorianChange](#getGregorianChange%28%29)、および[getTimeZone](Calendar.html#getTimeZone%28%29)の各メソッドの現在値が考慮されます。 たとえば、グレゴリオ暦の変更日が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.html#getActualMinimum%28int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド 戻り値: この`GregorianCalendar`の時間値に対する、指定されたカレンダ・フィールドの最小値 導入されたバージョン: 1.2 関連項目: [getMinimum(int)](#getMinimum%28int%29), [getMaximum(int)](#getMaximum%28int%29), [getGreatestMinimum(int)](#getGreatestMinimum%28int%29), [getLeastMaximum(int)](#getLeastMaximum%28int%29), [getActualMaximum(int)](#getActualMaximum%28int%29) * #### getActualMaximum public int getActualMaximum(int field) オーバーライド: `[getActualMaximum](Calendar.html#getActualMaximum%28int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `field` \- カレンダ・フィールド 戻り値: この`GregorianCalendar`の時間値に対する、指定されたフィールドの最大値 導入されたバージョン: 1.2 関連項目: [getMinimum(int)](#getMinimum%28int%29), [getMaximum(int)](#getMaximum%28int%29), [getGreatestMinimum(int)](#getGreatestMinimum%28int%29), [getLeastMaximum(int)](#getLeastMaximum%28int%29), [getActualMinimum(int)](#getActualMinimum%28int%29) * #### isWeekDateSupported public final boolean isWeekDateSupported() この`GregorianCalendar`が暦週日付をサポートしていることを示す`true`を返します。 オーバーライド: `[isWeekDateSupported](Calendar.html#isWeekDateSupported%28%29)`、クラス`[Calendar](Calendar.html)` 戻り値: `true` (常時) 導入されたバージョン: 1.7 関連項目: [getWeekYear()](#getWeekYear%28%29), [setWeekDate(int,int,int)](#setWeekDate%28int,int,int%29), [getWeeksInWeekYear()](#getWeeksInWeekYear%28%29) * #### getWeekYear public int getWeekYear() この`GregorianCalendar`で表される[暦週の基準年](#week%5Fyear)を返します。 特定の暦週の基準年において、第1週から最大の週番号までの間にある各週の各日付では、暦週の基準年の値が同じになり、この値は[YEAR](Calendar.html#YEAR) (暦年)の値よりも1年前またはあとになることがあります。 このメソッドは、暦週の基準年を計算する前に[Calendar.complete()](Calendar.html#complete%28%29)を呼び出します。 オーバーライド: `[getWeekYear](Calendar.html#getWeekYear%28%29)`、クラス`[Calendar](Calendar.html)` 戻り値: この`GregorianCalendar`で表される暦週の基準年。 [ERA](Calendar.html#ERA)値が[BC](#BC)の場合、年は0または負の値で表現され、たとえばBC 1は0、BC 2は -1、BC 3は -2などのようになります。 例外: `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- いずれかのカレンダ・フィールドが厳密モードで無効な場合。 導入されたバージョン: 1.7 関連項目: [isWeekDateSupported()](#isWeekDateSupported%28%29), [getWeeksInWeekYear()](#getWeeksInWeekYear%28%29), [Calendar.getFirstDayOfWeek()](Calendar.html#getFirstDayOfWeek%28%29), [Calendar.getMinimalDaysInFirstWeek()](Calendar.html#getMinimalDaysInFirstWeek%28%29) * #### setWeekDate public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) この`GregorianCalendar`を日付指示子 - [weekYear](#week%5Fyear)、`weekOfYear`、および`dayOfWeek`で指定された日付に設定します。`weekOfYear`は[WEEK\_OF\_YEARの番号付け](#week%5Fand%5Fyear)に従います。 `dayOfWeek`値は、[DAY\_OF\_WEEK](Calendar.html#DAY%5FOF%5FWEEK)のいずれかの値([SUNDAY](Calendar.html#SUNDAY)から[SATURDAY](Calendar.html#SATURDAY)まで)である必要があります。 数値による曜日の表現はISO 8601規格と異なっていること、および`weekOfYear`の番号付けは` getFirstDayOfWeek()`が`MONDAY`で` getMinimalDaysInFirstWeek()`が4の場合にこの規格に準拠することに注意してください。 `set`メソッドと異なり、すべてのカレンダ・フィールドおよび時間値のインスタントは返された時点で計算されます。 `weekOfYear`が`weekYear`内の有効な週番号の範囲外である場合は、`weekYear`および`weekOfYear`値が非厳密モードで調整されるか、`IllegalArgumentException`が厳密モードでスローされます。 オーバーライド: `[setWeekDate](Calendar.html#setWeekDate%28int,int,int%29)`、クラス`[Calendar](Calendar.html)` パラメータ: `weekYear` \- 暦週の基準年 `weekOfYear` \- `weekYear`に基づく週番号 `dayOfWeek` \- 曜日の値。[DAY\_OF\_WEEK](Calendar.html#DAY%5FOF%5FWEEK)フィールドの定数([SUNDAY](Calendar.html#SUNDAY)、...、[SATURDAY](Calendar.html#SATURDAY))の1つ。 例外: `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- 厳密モードで、指定されたいずれかの日付指定子が無効であるか、いずれかのカレンダ・フィールドが、指定された日付指定子と矛盾している場合 導入されたバージョン: 1.7 関連項目: [isWeekDateSupported()](#isWeekDateSupported%28%29), [Calendar.getFirstDayOfWeek()](Calendar.html#getFirstDayOfWeek%28%29), [Calendar.getMinimalDaysInFirstWeek()](Calendar.html#getMinimalDaysInFirstWeek%28%29) * #### getWeeksInWeekYear public int getWeeksInWeekYear() この`GregorianCalendar`で表される[暦週の基準年](#week%5Fyear)に含まれる週数を返します。 たとえば、この`GregorianCalendar`の日付が2008年12月31日の場合、[ISO 8601準拠の設定](#iso8601%5Fcompatible%5Fsetting)では、このメソッドは、2008年12月29日から2010年1月3日までの期間に相当する53を返しますが、[getActualMaximum(WEEK\_OF\_YEAR)](#getActualMaximum%28int%29)の場合は2007年12月31日から2008年12月28日までの期間に相当する52を返します。 オーバーライド: `[getWeeksInWeekYear](Calendar.html#getWeeksInWeekYear%28%29)`、クラス`[Calendar](Calendar.html)` 戻り値: 暦週の基準年に含まれる週数。 導入されたバージョン: 1.7 関連項目: [Calendar.WEEK\_OF\_YEAR](Calendar.html#WEEK%5FOF%5FYEAR), [getWeekYear()](#getWeekYear%28%29), [getActualMaximum(int)](#getActualMaximum%28int%29) * #### computeFields protected void computeFields() 時間値([元期](Calendar.html#Epoch)からのミリ秒単位のオフセット)をカレンダ・フィールド値に変換します。 時間は最初に再計算_されません_。時間、フィールドの順に再計算するには、`complete`メソッドを呼び出します。 定義: `[computeFields](Calendar.html#computeFields%28%29)`、クラス`[Calendar](Calendar.html)` 関連項目: [Calendar.complete()](Calendar.html#complete%28%29) * #### computeTime protected void computeTime() カレンダ・フィールド値を時間値([元期](Calendar.html#Epoch)からのミリ秒単位のオフセット)に変換します。 定義: `[computeTime](Calendar.html#computeTime%28%29)`、クラス`[Calendar](Calendar.html)` 例外: `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- 無効なカレンダ・フィールドがある場合。 関連項目: [Calendar.complete()](Calendar.html#complete%28%29), [Calendar.computeFields()](Calendar.html#computeFields%28%29) * #### toZonedDateTime public [ZonedDateTime](../time/ZonedDateTime.html "class in java.time") toZonedDateTime() このオブジェクトを、時系列上でこの`GregorianCalendar`と同じ時点を表す`ZonedDateTime`に変換します。 このオブジェクトはユリウス/グレゴリオ暦の切換え日をサポートしていますが、`ZonedDateTime`はサポートしていないため、結果となる年、月、および日が異なる値になる可能性があります。 結果は、修正ユリウス日の同じ値でもある、ISO暦体系での正しい日付を表します。 戻り値: 時系列上でこのグレゴリオ暦と同じ時点を表すゾーン付き日付/時間 導入されたバージョン: 1.8 * #### from public static [GregorianCalendar](GregorianCalendar.html "class in java.util") from([ZonedDateTime](../time/ZonedDateTime.html "class in java.time") zdt) `ZonedDateTime`オブジェクトからデフォルトのロケールを使って`GregorianCalendar`のインスタンスを取得します。 `ZonedDateTime`はユリウス/グレゴリオ暦の切換え日をサポートしておらず、ISO暦体系を使用するため、返されるGregorianCalendarは純粋なグレゴリオ暦であり、週定義にはISO 8601標準が使われています。その標準では、[FirstDayOfWeek](Calendar.html#getFirstDayOfWeek%28%29)は`MONDAY`であり、[MinimalDaysInFirstWeek](Calendar.html#getMinimalDaysInFirstWeek%28%29)の値は`4`です。 `ZoneDateTime`は、`GregorianCalendar`に比べ、時系列上の将来および過去のより詳細な時点を格納できます。 このシナリオでは、このメソッドは`IllegalArgumentException`例外をスローします。 パラメータ: `zdt` \- 変換対象のゾーン付き日付/時間オブジェクト 戻り値: 時系列上で指定されたゾーン付き日付/時間と同じ時点を表すグレゴリオ暦 例外: `[NullPointerException](../lang/NullPointerException.html)` \- `zdt`がnullである場合 `[IllegalArgumentException](../lang/IllegalArgumentException.html)` \- そのゾーン付き日付/時間が`GregorianCalendar`として表すには大きすぎる場合 導入されたバージョン: 1.8