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
フィールドに対して計算される値の範囲は、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
Calendar.Builder
修飾子と型 | フィールドと説明 |
---|---|
static int |
AD
キリスト紀元(西暦)を示す
ERA フィールドの値であり、CEとも呼ばれます。 |
static int |
BC
キリスト紀元より前の期間(BC)を示す
ERA フィールドの値であり、BCEとも呼ばれます。 |
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
コンストラクタと説明 |
---|
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 を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
void |
add(int field, int amount)
カレンダのルールに基づいて、指定された(符号付きの)時間量を、指定されたカレンダ・フィールドに加えます。
|
Object |
clone()
このオブジェクトのコピーを作成して、返します。
|
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 インスタンスで指定されたカレンダ・フィールドの最小値を返します。 |
TimeZone |
getTimeZone()
タイムゾーンを取得します。
|
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 |
setTimeZone(TimeZone zone)
指定されたタイムゾーン値を使用してタイムゾーンを設定します。
|
void |
setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
|
ZonedDateTime |
toZonedDateTime()
このオブジェクトを、時系列上でこの
GregorianCalendar と同じ時点を表すZonedDateTime に変換します。 |
after, before, clear, clear, compareTo, complete, get, getAvailableCalendarTypes, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, toInstant, toString
public static final int BC
ERA
フィールドの値であり、BCEとも呼ばれます。BC
からAD
への移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。Calendar.ERA
、定数フィールド値public static final int AD
ERA
フィールドの値であり、CEとも呼ばれます。BC
からAD
への移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。Calendar.ERA
、定数フィールド値public GregorianCalendar()
FORMAT
ロケールでデフォルト・タイム・ゾーンの現在の時間を使用してデフォルトのGregorianCalendar
を構築します。public GregorianCalendar(TimeZone zone)
FORMAT
ロケールで指定されたタイムゾーンの現在の時間に基づいてGregorianCalendar
を構築します。zone
- 指定されたタイムゾーン。public GregorianCalendar(Locale aLocale)
GregorianCalendar
を構築します。aLocale
- 指定されたロケール。public GregorianCalendar(TimeZone zone, Locale aLocale)
GregorianCalendar
を構築します。zone
- 指定されたタイムゾーン。aLocale
- 指定されたロケール。public GregorianCalendar(int year, int month, int dayOfMonth)
GregorianCalendar
を構築します。year
- カレンダ内のYEAR
カレンダ・フィールドの設定に使用する値。month
- カレンダ内のMONTH
カレンダ・フィールドの設定に使用する値。Month値は0から始まる(1月は0になる)。dayOfMonth
- カレンダ内のDAY_OF_MONTH
カレンダ・フィールドの設定に使用する値。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
カレンダ・フィールドの設定に使用する値。public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
year
- カレンダ内のYEAR
カレンダ・フィールドの設定に使用する値。month
- カレンダ内のMONTH
カレンダ・フィールドの設定に使用する値。Month値は0から始まる(1月は0になる)。dayOfMonth
- カレンダ内のDAY_OF_MONTH
カレンダ・フィールドの設定に使用する値。hourOfDay
- カレンダ内のHOUR_OF_DAY
カレンダ・フィールドの設定に使用する値。minute
- カレンダ内のMINUTE
カレンダ・フィールドの設定に使用する値。second
- カレンダ内のSECOND
カレンダ・フィールドの設定に使用する値。public void setGregorianChange(Date date)
GregorianCalendar
の切換え日を設定します。これは、ユリウス暦からグレゴリオ暦への切換えが発生する時点です。デフォルトは1582年10月15日(グレゴリオ暦)です。これ以前の日付はユリウス暦になります。
純粋なユリウス暦を取得するには、切換え日をDate(Long.MAX_VALUE)
に設定します。純粋なグレゴリオ歴を取得するには、切換え日をDate(Long.MIN_VALUE)
に設定します。
date
- グレゴリオ暦への変更日付。public final Date getGregorianChange()
GregorianCalendar
オブジェクトのグレゴリオ暦への切換え日。public boolean isLeapYear(int year)
true
が返されます。BC年の数値を指定する場合は、1 - year number
を指定する必要があります。たとえば、BC 4年は -3と指定します。year
- 指定する年。true
、そうでない場合はfalse
。public String getCalendarType()
"gregory"
を返します。getCalendarType
in class Calendar
"gregory"
Locale.Builder.setLocale(Locale)
, Locale.Builder.setUnicodeLocaleKeyword(String, String)
public boolean equals(Object obj)
GregorianCalendar
を指定されたObject
と比較します。引数が、このオブジェクトと同じCalendar
パラメータおよびグレゴリオ暦切替え日の同じ時刻値(元期からのミリ秒単位のオフセット)を表すGregorianCalendar
オブジェクトである場合にのみ、結果はtrue
になります。equals
、クラス: Calendar
obj
- 比較対象のオブジェクト。obj
に等しい場合はtrue
。それ以外の場合はfalse
。Calendar.compareTo(Calendar)
public int hashCode()
GregorianCalendar
オブジェクトのハッシュ・コードを生成します。hashCode
、クラス: Calendar
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
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
、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。Calendar.roll(int,int)
, Calendar.set(int,int)
public void roll(int field, boolean up)
例: 1999年12月31日に当初設定されたGregorianCalendar
を考えます。roll(Calendar.MONTH, true)
を呼び出すと、カレンダが1999年1月31日に設定されます。YEAR
フィールドはMONTH
よりも大きいフィールドなので変更されません。
roll
、クラス: Calendar
up
- 指定されたカレンダ・フィールドの値を上へ動かすのか、下へ動かすのかを指定する。上へ動かす場合はtrue
、そうでない場合はfalse
を使用する。field
- 時間フィールド。IllegalArgumentException
- field
がZONE_OFFSET
、DST_OFFSET
、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。add(int,int)
, Calendar.set(int,int)
public void roll(int field, int amount)
このメソッドは、量を追加する前に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
、または不明である場合、またはいずれかのカレンダ・フィールドが厳密モードで範囲外の値を保持する場合。roll(int,boolean)
, add(int,int)
, Calendar.set(int,int)
public int getMinimum(int field)
GregorianCalendar
インスタンスで指定されたカレンダ・フィールドの最小値を返します。最小値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、およびgetTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してget
メソッドが返す最小値として定義されます。getMinimum
、クラス: Calendar
field
- カレンダ・フィールド。getMaximum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getMaximum(int field)
GregorianCalendar
インスタンスで指定されたカレンダ・フィールドの最大値を返します。最大値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、およびgetTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してget
メソッドが返す最大値として定義されます。getMaximum
、クラス: Calendar
field
- カレンダ・フィールド。getMinimum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getGreatestMinimum(int field)
GregorianCalendar
インスタンスで指定されたカレンダ・フィールドの最大最小値を返します。最大最小値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、およびgetTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetActualMinimum(int)
メソッドが返す最大値として定義されます。getGreatestMinimum
、クラス: Calendar
field
- カレンダ・フィールド。getMinimum(int)
, getMaximum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getLeastMaximum(int field)
GregorianCalendar
インスタンスで指定されたカレンダ・フィールドの最小最大値を返します。最小最大値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、およびgetTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対してgetActualMaximum(int)
メソッドが返す最小値として定義されます。getLeastMaximum
、クラス: Calendar
field
- カレンダ・フィールドgetMinimum(int)
, getMaximum(int)
, getGreatestMinimum(int)
, getActualMinimum(int)
, getActualMaximum(int)
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
の時間値に対する、指定されたカレンダ・フィールドの最小値getMinimum(int)
, getMaximum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMaximum(int)
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
の最大値を計算します。このGregorianCalendar
での暦週の基準年においてWEEK_OF_YEAR
の最大値を取得するには、getWeeksInWeekYear()
を呼び出します。
getActualMaximum
、クラス: Calendar
field
- カレンダ・フィールドGregorianCalendar
の時間値に対する、指定されたフィールドの最大値getMinimum(int)
, getMaximum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
public TimeZone getTimeZone()
Calendar
getTimeZone
、クラス: Calendar
public void setTimeZone(TimeZone zone)
Calendar
setTimeZone
、クラス: Calendar
zone
- 指定されたタイムゾーン。public final boolean isWeekDateSupported()
GregorianCalendar
が暦週日付をサポートしていることを示すtrue
を返します。isWeekDateSupported
、クラス: Calendar
true
(常時)getWeekYear()
, setWeekDate(int,int,int)
, getWeeksInWeekYear()
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
- いずれかのカレンダ・フィールドが厳密モードで無効な場合。isWeekDateSupported()
, getWeeksInWeekYear()
, Calendar.getFirstDayOfWeek()
, Calendar.getMinimalDaysInFirstWeek()
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
- 厳密モードで、指定されたいずれかの日付指定子が無効であるか、いずれかのカレンダ・フィールドが、指定された日付指定子と矛盾している場合isWeekDateSupported()
, Calendar.getFirstDayOfWeek()
, Calendar.getMinimalDaysInFirstWeek()
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
Calendar.WEEK_OF_YEAR
, getWeekYear()
, getActualMaximum(int)
protected void computeFields()
complete
メソッドを呼び出します。computeFields
、クラス: Calendar
Calendar.complete()
protected void computeTime()
computeTime
、クラス: Calendar
IllegalArgumentException
- 無効なカレンダ・フィールドがある場合。Calendar.complete()
, Calendar.computeFields()
public ZonedDateTime toZonedDateTime()
GregorianCalendar
と同じ時点を表すZonedDateTime
に変換します。
このオブジェクトはユリウス/グレゴリオ暦の切換え日をサポートしていますが、ZonedDateTime
はサポートしていないため、結果となる年、月、および日が異なる値になる可能性があります。結果は、修正ユリウス日の同じ値でもある、ISO暦体系での正しい日付を表します。
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
として表すには大きすぎる場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.