CDC 1.1.2

java.util
クラス GregorianCalendar

java.lang.Object
  上位を拡張 java.util.Calendar
      上位を拡張 java.util.GregorianCalendar
すべての実装されたインタフェース:
Serializable, Cloneable

public class GregorianCalendar
extends Calendar

GregorianCalendar は、Calendar の具象サブクラスであり、世界のほとんどの地域で使用される標準的なカレンダを提供します。

標準 (グレゴリオ) カレンダには、 BC (紀元前) と AD (紀元後) という区分があります。

この実装では、1 つの変わり目を処理します。この変わり目は、デフォルト値により、グレゴリオ暦が制定された日 (一部の国では 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 です。年の第 1 週は、その年から少なくとも getMinimalDaysInFirstWeek() 日を含む getFirstDayOfWeek() で始まるもっとも早い 7 日間です。このように第 1 週は getMinimalDaysInFirstWeek()getFirstDayOfWeek() の値、および 1 月 1 日の曜日により変化します。ある年の第 1 週から翌年の第 1 週までの週は、必要に応じて 2 から 52 または 53 まで順に番号が付けられます。

たとえば、1998 年 1 月 1 日は木曜日でした。getFirstDayOfWeek()MONDAYgetMinimalDaysInFirstWeek() が 4 の場合 (これらは ISO 8601 および多数の国の標準)、1998 年の第 1 週は 1997年 12 月 29 日から、1998 年 1 月 4 日までです。ただし、getFirstDayOfWeek()SUNDAY の場合、1998 年の第 1 週は 1998 年 1 月 4 日から、1998 年 1 月 10 日までです。1998 年の最初の 3 日間は 1997 年の第 53 週に入ります。

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 になります。

例:

 // 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 savings 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
 

導入されたバージョン:
JDK1.1
関連項目:
Calendar, TimeZone, 直列化された形式

フィールドの概要
static int AD
          キリスト紀元 (西暦) を示す ERA フィールドの値であり、CE とも呼ばれます。
static int BC
          キリスト紀元 (BC) より前の期間を示す ERA フィールドの値であり、BCE とも呼ばれます。
 
クラス java.util.Calendar から継承されたフィールド
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, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET
 
コンストラクタの概要
GregorianCalendar()
          デフォルトロケールでデフォルトタイムゾーンの現在時刻に基づいてデフォルトの GregorianCalendar を構築します。
GregorianCalendar(int year, int month, int date)
          デフォルトロケールでデフォルトタイムゾーンの指定された日付に基づいて GregorianCalendar を構築します。
GregorianCalendar(int year, int month, int date, int hour, int minute)
          デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(int year, int month, int date, int hour, int minute, int second)
          デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(Locale aLocale)
          指定されたロケールでデフォルトタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(TimeZone zone)
          デフォルトロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(TimeZone zone, Locale aLocale)
          指定されたロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。
 
メソッドの概要
 void add(int field, int amount)
          カレンダの規則に基づいて、指定された (符号付きの) 時間量を、指定された時間フィールドに加えます。
protected  void computeFields()
          ミリ秒の UTC を時間フィールドの値に変換します。
protected  void computeTime()
          Calendar をオーバーライドします。
 boolean equals(Object obj)
          この GregorianCalendar とオブジェクト参照を比較します。
 int getActualMaximum(int field)
          現在の日付で、このフィールドが取り得る最大値を返します。
 int getActualMinimum(int field)
          現在の日付で、このフィールドが取り得る最小値を返します。
 int getGreatestMinimum(int field)
          指定されたフィールドの最小値が変化する場合、その最大値を返します。
 Date getGregorianChange()
          グレゴリオ暦の切り換え日を取得します。
 int getLeastMaximum(int field)
          指定されたフィールドの最大値が変化する場合、その最小値を返します。
 int getMaximum(int field)
          指定されたフィールドの最大値 (たとえば、グレゴリオ暦の DAY_OF_MONTH では、31) を返します。
 int getMinimum(int field)
          指定されたフィールドの最小値 (たとえば、グレゴリオ暦の DAY_OF_MONTH では、1) を返します。
 int hashCode()
          hashCode をオーバーライドします。
 boolean isLeapYear(int year)
          指定された年が、うるう年かどうかを判定します。
 void roll(int field, boolean up)
          大きいフィールドを変更せずに指定された時間フィールドの時間を 1 単位加算または減算します。
 void roll(int field, int amount)
          大きいフィールドを変更せずに、符号付きの量をフィールドに加えます。
 void setGregorianChange(Date date)
          GregorianCalendar の切り換え日を設定します。
 
クラス java.util.Calendar から継承されたメソッド
after, before, clear, clear, clone, complete, get, getAvailableLocales, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, getTimeZone, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, setTimeZone, toString
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

BC

public static final int BC
キリスト紀元 (BC) より前の期間を示す ERA フィールドの値であり、BCE とも呼ばれます。BC から AD へは次のように移行します。 ..., 2 BC, 1 BC, 1 AD, 2 AD,...

関連項目:
Calendar.ERA, 定数フィールド値

AD

public static final int AD
キリスト紀元 (西暦) を示す ERA フィールドの値であり、CE とも呼ばれます。BC から AD へは次のように移行します。 ..., 2 BC, 1 BC, 1 AD, 2 AD,...

関連項目:
Calendar.ERA, 定数フィールド値
コンストラクタの詳細

GregorianCalendar

public GregorianCalendar()
デフォルトロケールでデフォルトタイムゾーンの現在時刻に基づいてデフォルトの GregorianCalendar を構築します。


GregorianCalendar

public GregorianCalendar(TimeZone zone)
デフォルトロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。

パラメータ:
zone - 指定するタイムゾーン

GregorianCalendar

public GregorianCalendar(Locale aLocale)
指定されたロケールでデフォルトタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。

パラメータ:
aLocale - 指定されたロケール

GregorianCalendar

public GregorianCalendar(TimeZone zone,
                         Locale aLocale)
指定されたロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。

パラメータ:
zone - 指定するタイムゾーン
aLocale - 指定されたロケール

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int date)
デフォルトロケールでデフォルトタイムゾーンの指定された日付に基づいて GregorianCalendar を構築します。

パラメータ:
year - カレンダの YEAR 時間フィールドに設定する値
month - カレンダの MONTH 時間フィールドに設定する値 Month 値は 0 から始まる (1 月 は 0 になる)
date - カレンダの DATE 時間フィールドに設定する値

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int date,
                         int hour,
                         int minute)
デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。

パラメータ:
year - カレンダの YEAR 時間フィールドに設定する値
month - カレンダの MONTH 時間フィールドに設定する値 Month 値は 0 から始まる (1 月 は 0 になる)
date - カレンダの DATE 時間フィールドに設定する値
hour - カレンダの HOUR_OF_DAY 時間フィールドに設定する値
minute - カレンダの MINUTE 時間フィールドに設定する値

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int date,
                         int hour,
                         int minute,
                         int second)
デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。

パラメータ:
year - カレンダの YEAR 時間フィールドに設定する値
month - カレンダの MONTH 時間フィールドに設定する値 Month 値は 0 から始まる (1 月 は 0 になる)
date - カレンダの DATE 時間フィールドに設定する値
hour - カレンダの 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 日です。これより前の日付はユリウス暦になります。

戻り値:
このカレンダのグレゴリオ暦への切り換え日

isLeapYear

public boolean isLeapYear(int year)
指定された年が、うるう年かどうかを判定します。指定された年がうるう年の場合は、true が返されます。

パラメータ:
year - 指定する年
戻り値:
指定された年がうるう年の場合は true、そうでない場合は false

equals

public boolean equals(Object obj)
この GregorianCalendar とオブジェクト参照を比較します。

オーバーライド:
クラス Calendar 内の equals
パラメータ:
obj - 比較対象のオブジェクト参照
戻り値:
このオブジェクトが obj に等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
hashCode をオーバーライドします。GregorianCalendar オブジェクトのハッシュコードを生成します。

オーバーライド:
クラス Calendar 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

add

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

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

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

定義:
クラス Calendar 内の add
パラメータ:
field - 時間フィールド
amount - フィールドに追加される日付または時刻の量
例外:
IllegalArgumentException - 認識できないフィールドが指定された場合

roll

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

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

定義:
クラス Calendar 内の roll
パラメータ:
up - 指定された時間フィールドの値を加算するか減算するかを指定する。 加算する場合は true、そうでない場合は false
field - 時間フィールド
例外:
IllegalArgumentException - 認識できないフィールド値が指定された場合
関連項目:
add(int, int), Calendar.set(int, int)

roll

public void roll(int field,
                 int amount)
大きいフィールドを変更せずに、符号付きの量をフィールドに加えます。負のローリング量は、大きいフィールドを変更せずにフィールドから減算することを意味します。  

: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 rule 1 とともに使用すると、結果の日付は 6 月 1 日火曜日から 6 月 5 日土曜日までになる必要があります。 add rule 2 に従って、WEEK_OF_MONTH を変更するときに不変式 DAY_OF_WEEK が、日曜日にもっとも近い可能値である火曜日に設定されます (日曜日が週の最初の日の場合)。

オーバーライド:
クラス Calendar 内の roll
パラメータ:
field - 時間フィールド
amount - field に追加する指定された量
導入されたバージョン:
1.2
関連項目:
add(int, int), Calendar.set(int, int)

getMinimum

public int getMinimum(int field)
指定されたフィールドの最小値 (たとえば、グレゴリオ暦の DAY_OF_MONTH では、1) を返します。パラメータと戻り値の説明は、Calendar.getMinimum を参照してください。

定義:
クラス Calendar 内の getMinimum
パラメータ:
field - 指定する時間フィールド
戻り値:
指定された時間フィールドの最小値

getMaximum

public int getMaximum(int field)
指定されたフィールドの最大値 (たとえば、グレゴリオ暦の DAY_OF_MONTH では、31) を返します。パラメータと戻り値の説明は、Calendar.getMaximum を参照してください。

定義:
クラス Calendar 内の getMaximum
パラメータ:
field - 指定する時間フィールド
戻り値:
指定された時間フィールドの最大値

getGreatestMinimum

public int getGreatestMinimum(int field)
指定されたフィールドの最小値が変化する場合、その最大値を返します。変化しない場合は getMinimum() と同じです。グレゴリオ暦の場合も同様です。Calendar.getGreatestMinimum で、パラメータと戻り値の説明を参照してください。

定義:
クラス Calendar 内の getGreatestMinimum
パラメータ:
field - 指定する時間フィールド
戻り値:
指定された時間フィールドの最大の最小値

getLeastMaximum

public int getLeastMaximum(int field)
指定されたフィールドの最大値が変化する場合、その最小値を返します。変化しない場合は getMaximum() と同じです。たとえば、グレゴリオ暦の DAY_OF_MONTH は 28 です。Calendar.getLeastMaximum で、パラメータと戻り値の説明を参照してください。

定義:
クラス Calendar 内の getLeastMaximum
パラメータ:
field - 指定する時間フィールド
戻り値:
指定された時間フィールドの最小の最大値

getActualMinimum

public int getActualMinimum(int field)
現在の日付で、このフィールドが取り得る最小値を返します。グレゴリオ暦の場合、これは getMinimum() および getGreatestMinimum() と同じです。

オーバーライド:
クラス Calendar 内の getActualMinimum
パラメータ:
field - 最小値を判定するフィールド
戻り値:
Calendar の現在の日付における、指定されたフィールドの最小値
導入されたバージョン:
1.2

getActualMaximum

public int getActualMaximum(int field)
現在の日付で、このフィールドが取り得る最大値を返します。たとえば、日付が「Feb 3, 1997」の場合、DAY_OF_MONTH フィールドの実際の最大値は 28 になります。「Feb 3, 1996」の場合は 29 になります。ヘブライ暦でも同様で、MONTH の最大値が 12 になる年と 13 になる年があります。

オーバーライド:
クラス Calendar 内の getActualMaximum
パラメータ:
field - 最大値を判定するフィールド
戻り値:
Calendar の現在の日付における、指定されたフィールドの最大値
導入されたバージョン:
1.2

computeFields

protected void computeFields()
ミリ秒の UTC を時間フィールドの値に変換します。時間は最初に再計算されません。時間、フィールドの順に再計算するには、complete メソッドを呼び出します。

定義:
クラス Calendar 内の computeFields
関連項目:
Calendar.complete()

computeTime

protected void computeTime()
Calendar をオーバーライドします。時間フィールドの値をミリ秒の UTC に変換します。

定義:
クラス Calendar 内の computeTime
例外:
IllegalArgumentException - 無効なフィールドがある場合

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.