|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.Calendar
public abstract class Calendar
Calendar
クラスは、特定の時点と YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
などのカレンダフィールド
セット間の変換、および次週の日付の取得などのカレンダフィールド操作を行うための abstract クラスです。特定の時点は、1970 年 1 月 1 日 00:00:00.000 GMT (グレゴリオ暦) を「エポック」とするミリ秒単位のオフセットで表現できます。
このクラスは、パッケージ外部の具象カレンダシステムを実装するための追加メソッドおよびフィールドも提供します。これらのフィールドおよびメソッドは、protected
として定義されます。
ロケールに依存する他のクラスと同じように、Calendar
では、この種の一般に役立つオブジェクトを得るためのクラスメソッド getInstance
が提供されます。Calendar
の getInstance
メソッドは、Calendar
オブジェクトを返しますが、このカレンダフィールドは現在の日付と時刻に初期化されています。
Calendar rightNow = Calendar.getInstance();
Calendar
オブジェクトでは、特定の言語およびカレンダスタイル (日本のグレゴリオ暦、日本の旧暦など) に対して、日付と時刻のフォーマットを行うときに必要なすべてのカレンダフィールド値を生成できます。Calendar
では、特定のカレンダフィールドとその意味の両方によって返される値の範囲が定義されます。たとえば、カレンダシステムの最初の月には、すべてのカレンダについて値 MONTH == JANUARY
があります。ほかの値は、ERA
などの具象サブクラスで定義されます。詳細は、個別のフィールドドキュメントおよびサブクラスドキュメントを参照してください。
カレンダフィールド値は、set
メソッドを呼び出して設定できます。Calendar
内で設定されたフィールド値はすべて、その時間値 (「エポック」からのミリ秒) またはカレンダフィールドの値を計算する必要が生じるまで解釈されません。get
、getTimeInMillis
、getTime
、add
、および roll
の呼び出しでは、この種の計算が行われます。
Calendar
は、カレンダフィールドを解釈する際、「厳密」および「非厳密」の 2 つのモードを使用します。非厳密モードの場合、Calendar
はそれ自身が生成する値よりも広範なカレンダフィールド値を受け入れます。Calendar
が、get()
の値を返すためにカレンダフィールド値を再計算する際、すべてのカレンダフィールドが正規化されます。たとえば、非厳密な GregorianCalendar
は、MONTH == JANUARY
、DAY_OF_MONTH == 32
を 2 月 1 日として解釈します。
厳密モードの場合、カレンダフィールド内に不一致があると、Calendar
は例外をスローします。たとえば、GregorianCalendar
は、DAY_OF_MONTH
値として 1 とその月の長さの間の値を常に生成します。厳密な GregorianCalendar
は、時間およびカレンダフィールド値を計算する際、範囲外のフィールド値が設定されていると例外をスローします。
Calendar
週の最初の日および最初の週の最小日数(1 から 7) という 2 つのパラメータを使用して、ロケール固有の週 7 日が定義されます。これらの数は、Calendar
が構築されるときにロケールリソースデータから取得されます。また、これらの値の設定用メソッドによって明示的に指定されることもあります。
WEEK_OF_MONTH
フィールドや WEEK_OF_YEAR
フィールドを設定または取得すると、Calendar
では月または年の最初の週を参照点として決定する必要があります。月または年の最初の週は、getFirstDayOfWeek()
で始まり、その月または年の少なくとも getMinimalDaysInFirstWeek()
の日数を含む、もっとも早い 7 日間として定義されます。...、-1、0 という番号が付けられた週は、最初の週より前にあります。2、3、... という番号が付けられた週は、最初の週より後ろにあります。get()
によって返される正規化された番号付けとは、異なる場合があります。たとえば、特定の Calendar
サブクラスでは、1 年の週 1 の前の週を、前年の週 n
として指定することがあります。
Calendar
は、次の方法でカレンダフィールド値を解決し、日付および時刻を判定します。
カレンダフィールド値にコンフリクトが存在する場合、Calendar
はあとに設定されたフィールドを優先します。次に示すのは、カレンダフィールドのデフォルトの組み合わせです。もっとも最近に設定されたフィールドによって判定される、最新の組み合わせが使用されます。
時刻フィールドの場合:YEAR + MONTH + DAY_OF_MONTH YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK YEAR + DAY_OF_YEAR YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
HOUR_OF_DAY AM_PM + HOUR
選択したフィールドの組み合わせで値が設定されていないカレンダフィールドが存在する場合、Calendar
はデフォルト値を使用します。各フィールドのデフォルト値は、具象カレンダシステムにより異なります。GregorianCalendar
の場合、フィールドのデフォルト値は、その期間の初めの値です。つまり、YEAR = 1970
、MONTH = JANUARY
、DAY_OF_MONTH = 1
などです。
注: 一部の特別な時間では、その解釈があいまいになることもあります。その場合には、次のように解決されます。
日付や時刻のフォーマット文字列は、カレンダの定義の一部ではありません。これらが実行時にユーザーによって修正可能で、オーバーライド可能である必要があるためです。日付をフォーマットするには、DateFormat
を使用してください。
set()
、add()
、および roll()
という 3 つのメソッドを使用して変更できます。
set(f, value)
では、カレンダフィールド f
が value
に変更されます。さらに、フィールド f
が変更されたことを示すように内部メンバー変数が設定されます。カレンダフィールド f
はただちに変更されますが、カレンダの時間値 (ミリ秒) は、get()
、getTime()
、getTimeInMillis()
、add()
、または roll()
が次に呼び出されるまで再計算されません。このように、set()
を複数回呼び出しても、不要な計算が行われることはありません。set()
を使用してカレンダフィールドを変更すると、カレンダフィールド、カレンダフィールド値、およびカレンダシステムによってほかのフィールドも変更されることがあります。さらに、get(f)
では、カレンダフィールドの再計算後に、set
メソッドを呼び出して設定された value
が必ず返されるとは限りません。これらの詳細は、具象カレンダクラスによって決定されます。
例:最初に 1999 年 8 月 31 日に設定された GregorianCalendar
を考えます。 set(Calendar.MONTH, Calendar.SEPTEMBER)
を呼び出すと、日付が 1999 年 9 月 31 日に設定されます。これは一時的な内部表現であり、getTime()
を呼び出すと 1999 年 10 月 1 日になります。ただし、getTime()
を呼び出す前に set(Calendar.DAY_OF_MONTH, 30)
を呼び出すと、set()
自体のあとに再計算が行われるために、日付が 1999 年 9 月 30 日に設定されます。
add(f, delta)
では、フィールド f
に delta
が追加されます。これは、2 つの調整によって set(f, get(f) + delta)
を呼び出すのと同じです。
Add rule 1. The value of field
f
after the call minus the value of fieldf
before the call isdelta
, modulo any overflow that has occurred in fieldf
. Overflow occurs when a field value exceeds its range and, as a result, the next larger field is incremented or decremented and the field value is adjusted back into its range.Add rule 2. If a smaller field is expected to be invariant, but it is impossible for it to be equal to its prior value because of changes in its minimum or maximum after field
f
is changed or other constraints, such as time zone offset changes, then its value is adjusted to be as close as possible to its expected value. A smaller field represents a smaller unit of time.HOUR
is a smaller field thanDAY_OF_MONTH
. No adjustment is made to smaller fields that are not expected to be invariant. The calendar system determines what fields are expected to be invariant.
In addition, unlike set()
, add()
forces
an immediate recomputation of the calendar's milliseconds and all
fields.
Example: Consider a GregorianCalendar
originally set to August 31, 1999. Calling add(Calendar.MONTH,
13)
sets the calendar to September 30, 2000. Add rule
1 sets the MONTH
field to September, since
adding 13 months to August gives September of the next year. Since
DAY_OF_MONTH
cannot be 31 in September in a
GregorianCalendar
, add rule 2 sets the
DAY_OF_MONTH
to 30, the closest possible value. Although
it is a smaller field, DAY_OF_WEEK
is not adjusted by
rule 2, since it is expected to change when the month changes in a
GregorianCalendar
.
roll(f, delta)
adds
delta
to field f
without changing larger
fields. This is equivalent to calling add(f, delta)
with
the following adjustment:
Roll rule. Larger fields are unchanged after the call. A larger field represents a larger unit of time.
DAY_OF_MONTH
is a larger field thanHOUR
.
例:GregorianCalendar.roll(int, int)
を参照してください。
使用法モデル。add()
および roll()
の動作を動機付けするために、月、日、年、および基本となる GregorianCalendar
の増分ボタンと減分ボタンがあるユーザーインタフェースコンポーネントを考えます。インタフェースで 1999 年 1 月 31 日が読み込まれ、ユーザーが月増分ボタンを押すと、何が読み込まれるでしょうか。基本となる実装で set()
が使用される場合は、1999 年 3 月 3 日が読み込まれます。1999 年 2 月 28 日となるほうがよいのですが、さらに、ユーザーが月増分ボタンをふたたび押した場合は、1999 年 3 月 28 日ではなく 1999 年 3 月 31 日が読み込まれる必要があります。元の日付を保存して、大きなフィールドが影響されるかどうかによって add()
または roll()
を使用することで、ユーザインタフェースがほとんどのユーザーが直観的に期待するとおりに動作します。
System.currentTimeMillis()
,
Date
,
GregorianCalendar
,
TimeZone
,
DateFormat
,
直列化された形式フィールドの概要 | |
---|---|
static int |
ALL_STYLES
「January」や「Jan」などのすべてのスタイルで名前を示す、 getDisplayNames のスタイル指示子です。 |
static int |
AM
真夜中から正午の前までの時間を示す AM_PM フィールドの値です。 |
static int |
AM_PM
get および set のためのフィールド値で、HOUR が正午より前であるかあとであるかを示します。 |
static int |
APRIL
グレゴリオ暦とユリウス暦の年の 4 番目の月を示す MONTH フィールドの値です。 |
protected boolean |
areFieldsSet
fields[] が現在設定されている時刻と同期をとっている場合は true です。 |
static int |
AUGUST
グレゴリオ暦とユリウス暦の年の 8 番目の月を示す MONTH フィールドの値です。 |
static int |
DATE
get および set のためのフィールド値で、月の日を示します。 |
static int |
DAY_OF_MONTH
get および set のためのフィールド値で、月の日を示します。 |
static int |
DAY_OF_WEEK
get および set のためのフィールド値で、曜日を表します。 |
static int |
DAY_OF_WEEK_IN_MONTH
get および set のためのフィールド値で、現在の月の何度目の曜日かを示します。 |
static int |
DAY_OF_YEAR
get および set のためのフィールド値で、現在の年の何日目かを示します。 |
static int |
DECEMBER
グレゴリオ暦とユリウス暦の年の 12 番目の月を示す MONTH フィールドの値です。 |
static int |
DST_OFFSET
get および set のためのフィールド値です。 |
static int |
ERA
get および set のためのフィールド値で、ユリウス暦の AD または BC などの年代を示します。 |
static int |
FEBRUARY
グレゴリオ暦とユリウス暦の年の 2 番目の月を示す MONTH フィールドの値です。 |
static int |
FIELD_COUNT
get および set によって識別される重複しないフィールドの数を示します。 |
protected int[] |
fields
このカレンダで現在設定されている時刻に対するカレンダフィールド値です。 |
static int |
FRIDAY
金曜日を示す DAY_OF_WEEK フィールドの値です。 |
static int |
HOUR
get および set のためのフィールド値で、午前または午後の何時かを示します。 |
static int |
HOUR_OF_DAY
get および set のためのフィールド値で、時刻を示します。 |
protected boolean[] |
isSet
指定されたカレンダフィールドがカレンダで設定されているかどうかを示すフラグです。 |
protected boolean |
isTimeSet
time の値が有効である場合は true です。 |
static int |
JANUARY
グレゴリオ暦とユリウス暦の年の最初の月を示す MONTH フィールドの値です。 |
static int |
JULY
グレゴリオ暦とユリウス暦の年の 7 番目の月を示す MONTH フィールドの値です。 |
static int |
JUNE
グレゴリオ暦とユリウス暦の年の 6 番目の月を示す MONTH フィールドの値です。 |
static int |
LONG
「January」のような長い名前を示す getDisplayName および getDisplayNames のスタイル指示子です。 |
static int |
MARCH
グレゴリオ暦とユリウス暦の年の 3 番目の月を示す MONTH フィールドの値です。 |
static int |
MAY
グレゴリオ暦とユリウス暦の年の 5 番目の月を示す MONTH フィールドの値です。 |
static int |
MILLISECOND
get および set のためのフィールド値で、ミリ秒を示します。 |
static int |
MINUTE
get および set のためのフィールド値で、分を示します。 |
static int |
MONDAY
月曜日を示す DAY_OF_WEEK フィールドの値です。 |
static int |
MONTH
get および set のための、月を示すフィールド値です。 |
static int |
NOVEMBER
グレゴリオ暦とユリウス暦の年の 11 番目の月を示す MONTH フィールドの値です。 |
static int |
OCTOBER
グレゴリオ暦とユリウス暦の年の 10 番目の月を示す MONTH フィールドの値です。 |
static int |
PM
正午から真夜中の前までの時間を示す AM_PM フィールドの値です。 |
static int |
SATURDAY
土曜日を示す DAY_OF_WEEK フィールドの値です。 |
static int |
SECOND
get および set のためのフィールド値で、秒を示します。 |
static int |
SEPTEMBER
グレゴリオ暦とユリウス暦の年の 9 番目の月を示す MONTH フィールドの値です。 |
static int |
SHORT
「Jan」のような短い名前を示す getDisplayName および getDisplayNames のスタイル指示子です。 |
static int |
SUNDAY
日曜日を示す DAY_OF_WEEK フィールドの値です。 |
static int |
THURSDAY
木曜日を示す DAY_OF_WEEK フィールドの値です。 |
protected long |
time
このカレンダで現在設定されている時刻です。 |
static int |
TUESDAY
火曜日を示す DAY_OF_WEEK フィールドの値です。 |
static int |
UNDECIMBER
13 番目の月を示す MONTH フィールドの値です。 |
static int |
WEDNESDAY
水曜日を示す DAY_OF_WEEK フィールドの値です。 |
static int |
WEEK_OF_MONTH
get および set のためのフィールド値で、現在の月の何週目かを示します。 |
static int |
WEEK_OF_YEAR
get および set のためのフィールド値で、現在の年の何週目かを示します。 |
static int |
YEAR
get および set のための、年を示すフィールド値です。 |
static int |
ZONE_OFFSET
get および set のためのフィールド値です。 |
コンストラクタの概要 | |
---|---|
protected |
Calendar()
デフォルトのタイムゾーンおよびロケールを使用して Calendar を作成します。 |
protected |
Calendar(TimeZone zone,
Locale aLocale)
指定されたタイムゾーンおよびロケールを使用してカレンダを作成します。 |
メソッドの概要 | |
---|---|
abstract void |
add(int field,
int amount)
カレンダの規則に基づいて、指定された時間量を指定されたカレンダフィールドに加算または減算します。 |
boolean |
after(Object when)
この Calendar が、指定された Object の表す時刻よりあとの時刻を表すかどうかを返します。 |
boolean |
before(Object when)
この Calendar が、指定された Object の表す時刻より前の時刻を表すかどうかを返します。 |
void |
clear()
この Calendar のすべてのカレンダフィールド値および時刻値 (エポックからのミリ秒単位のオフセット) を未定義に設定します。 |
void |
clear(int field)
この Calendar の指定されたカレンダフィールド値および時刻値 (エポックからのミリ秒単位のオフセット) を未定義に設定します。 |
Object |
clone()
このオブジェクトのコピーを作成して、返します。 |
int |
compareTo(Calendar anotherCalendar)
2 つの Calendar オブジェクトで表される時刻値 (エポックからのミリ秒単位のオフセット) を比較します。 |
protected void |
complete()
カレンダフィールドの未設定フィールドに値を入れます。 |
protected abstract void |
computeFields()
現在のミリ秒の時刻値 time を fields[] のカレンダフィールドの値に変換します。 |
protected abstract void |
computeTime()
現在のミリ秒の時刻値 time を fields[] 内のカレンダフィールド値に変換します。 |
boolean |
equals(Object obj)
この Calendar を指定された Object と比較します。 |
int |
get(int field)
指定されたカレンダフィールドの値を返します。 |
int |
getActualMaximum(int field)
この Calendar に時間値を指定した特定のカレンダフィールドが取り得る最大値を返します。 |
int |
getActualMinimum(int field)
この Calendar の時間値を指定した、指定のカレンダのフィールドが取り得る最小の値を返します。 |
static Locale[] |
getAvailableLocales()
このクラスの getInstance メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。 |
String |
getDisplayName(int field,
int style,
Locale locale)
指定された style と locale のカレンダ field 値の文字列表現を返します。 |
Map<String,Integer> |
getDisplayNames(int field,
int style,
Locale locale)
指定された style および locale のカレンダ field のすべての名前と、それに対応するフィールド値を含む Map を返します。 |
int |
getFirstDayOfWeek()
週の最初の日が何であるかを取得します。 |
abstract int |
getGreatestMinimum(int field)
この Calender インスタンスで指定されたカレンダフィールドの最大最小値を返します。 |
static Calendar |
getInstance()
デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得します。 |
static Calendar |
getInstance(Locale aLocale)
デフォルトのタイムゾーンおよび指定されたロケールを使用してカレンダを取得します。 |
static Calendar |
getInstance(TimeZone zone)
指定されたタイムゾーンおよびデフォルトのロケールを使用してカレンダを取得します。 |
static Calendar |
getInstance(TimeZone zone,
Locale aLocale)
指定されたタイムゾーンおよびロケールを使用してカレンダを取得します。 |
abstract int |
getLeastMaximum(int field)
この Calendar インスタンスで指定されたカレンダフィールドの最小最大値を返します。 |
abstract int |
getMaximum(int field)
この Calender インスタンスで指定されたカレンダフィールドの最大値を返します。 |
int |
getMinimalDaysInFirstWeek()
年の最初の週に必要な最小日数を取得します。 |
abstract int |
getMinimum(int field)
この Calender インスタンスで指定されたカレンダフィールドの最小値を返します。 |
Date |
getTime()
この Calendar の時刻値 (「エポック」からのミリ秒単位のオフセット) を表す Date オブジェクトを返します。 |
long |
getTimeInMillis()
この Calendar の時刻値をミリ秒で返します。 |
TimeZone |
getTimeZone()
タイムゾーンを取得します。 |
int |
hashCode()
このカレンダのハッシュコードを返します。 |
protected int |
internalGet(int field)
指定されたカレンダフィールドの値を返します。 |
boolean |
isLenient()
日付/時刻の解釈が厳密でないかどうかを指定します。 |
boolean |
isSet(int field)
指定されたカレンダフィールドが値セットを保持するかどうかを判定します。 |
abstract void |
roll(int field,
boolean up)
大きいフィールドを変更せずに指定された時間フィールドの 1 つの単位の時間を上または下に加算または減算します。 |
void |
roll(int field,
int amount)
大きいフィールドを変更せずに、指定された (符号付きの) 量を指定されたカレンダフィールドに加えます。 |
void |
set(int field,
int value)
指定されたカレンダフィールドを指定された値に設定します。 |
void |
set(int year,
int month,
int date)
カレンダフィールド YEAR 、MONTH 、および DAY_OF_MONTH の値を設定します。 |
void |
set(int year,
int month,
int date,
int hourOfDay,
int minute)
カレンダフィールド YEAR 、MONTH 、DAY_OF_MONTH 、HOUR_OF_DAY 、および MINUTE の値を設定します。 |
void |
set(int year,
int month,
int date,
int hourOfDay,
int minute,
int second)
フィールド YEAR 、MONTH 、DAY_OF_MONTH 、HOUR 、MINUTE 、および SECOND の値を設定します。 |
void |
setFirstDayOfWeek(int value)
週の最初の日が何であるかを設定します。 |
void |
setLenient(boolean lenient)
日付/時刻の解釈を厳密に行うかどうかを設定します。 |
void |
setMinimalDaysInFirstWeek(int value)
年の最初の週に必要な最小日数を設定します。 |
void |
setTime(Date date)
この Calendar の時間を、指定された Date に設定します。 |
void |
setTimeInMillis(long millis)
Calendar の現在時刻を、指定された long 値から設定します。 |
void |
setTimeZone(TimeZone value)
指定されたタイムゾーン値を使用してタイムゾーンを設定します。 |
String |
toString()
カレンダの文字列表現を返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
public static final int ERA
get
および set
のためのフィールド値で、ユリウス暦の AD または BC などの年代を示します。これはカレンダ固有の値です。サブクラスのドキュメントを参照してください。
GregorianCalendar.AD
,
GregorianCalendar.BC
,
定数フィールド値public static final int YEAR
get
および set
のための、年を示すフィールド値です。これはカレンダ固有の値です。サブクラスのドキュメントを参照してください。
public static final int MONTH
get
および set
のための、月を示すフィールド値です。これはカレンダ固有の値です。グレゴリオ暦とユリウス暦の年の最初の月は JANUARY
で 、0 となります。最後の月は、1 年の月の数によります。
JANUARY
,
FEBRUARY
,
MARCH
,
APRIL
,
MAY
,
JUNE
,
JULY
,
AUGUST
,
SEPTEMBER
,
OCTOBER
,
NOVEMBER
,
DECEMBER
,
UNDECIMBER
,
定数フィールド値public static final int WEEK_OF_YEAR
get
および set
のためのフィールド値で、現在の年の何週目かを示します。getFirstDayOfWeek()
および getMinimalDaysInFirstWeek()
で定義される年の最初の週には、値 1 が使用されます。サブクラスでは、年の最初の週より前の日に対して WEEK_OF_YEAR
の値が定義されます。
getFirstDayOfWeek()
,
getMinimalDaysInFirstWeek()
,
定数フィールド値public static final int WEEK_OF_MONTH
get
および set
のためのフィールド値で、現在の月の何週目かを示します。getFirstDayOfWeek()
および getMinimalDaysInFirstWeek()
で定義される月の最初の週には、値 1 が使用されます。サブクラスでは、月の最初の週より前の日に対して WEEK_OF_MONTH
の値が定義されます。
getFirstDayOfWeek()
,
getMinimalDaysInFirstWeek()
,
定数フィールド値public static final int DATE
get
および set
のためのフィールド値で、月の日を示します。これは DAY_OF_MONTH
と同じになります。月の最初の日には、値 1 が使用されます。
DAY_OF_MONTH
,
定数フィールド値public static final int DAY_OF_MONTH
get
および set
のためのフィールド値で、月の日を示します。これは DATE
と同じになります。月の最初の日には、値 1 が使用されます。
DATE
,
定数フィールド値public static final int DAY_OF_YEAR
get
および set
のためのフィールド値で、現在の年の何日目かを示します。年の最初の日には、値 1 が使用されます。
public static final int DAY_OF_WEEK
get
および set
のためのフィールド値で、曜日を表します。このフィールドの値は、SUNDAY
、MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
、および SATURDAY
になります。
SUNDAY
,
MONDAY
,
TUESDAY
,
WEDNESDAY
,
THURSDAY
,
FRIDAY
,
SATURDAY
,
定数フィールド値public static final int DAY_OF_WEEK_IN_MONTH
get
および set
のためのフィールド値で、現在の月の何度目の曜日かを示します。DAY_OF_WEEK
フィールドとともに使用すると、月の日を一意に指定できます。WEEK_OF_MONTH
および WEEK_OF_YEAR
とは異なり、このフィールドの値は getFirstDayOfWeek()
または getMinimalDaysInFirstWeek()
には依存しません。DAY_OF_MONTH 1
から 7
は、常に DAY_OF_WEEK_IN_MONTH 1
に対応します。8
から 14
は、DAY_OF_WEEK_IN_MONTH 2
に対応し、以下同様になります。DAY_OF_WEEK_IN_MONTH 0
は、DAY_OF_WEEK_IN_MONTH 1
の前の週を示します。負の値は月末から遡って数えられるため、月の最終日曜日は、DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1
と指定されます。負の値は遡って計算されるため、通常は当月内の正の値とは異なる位置に配置されます。たとえば、1 か月が 31 日の場合、DAY_OF_WEEK_IN_MONTH -1
は DAY_OF_WEEK_IN_MONTH 5
および 4
の最後とオーバーラップします。
DAY_OF_WEEK
,
WEEK_OF_MONTH
,
定数フィールド値public static final int AM_PM
get
および set
のためのフィールド値で、HOUR
が正午より前であるかあとであるかを示します。たとえば、10:04:15.250 PM の場合、AM_PM
は PM
になります。
AM
,
PM
,
HOUR
,
定数フィールド値public static final int HOUR
get
および set
のためのフィールド値で、午前または午後の何時かを示します。HOUR
は 12 時間制 (0 〜 11) です。正午および真夜中は、12 ではなく 0 で表されます。たとえば、10:04:15.250 PM の場合、HOUR
は 10 になります。
AM_PM
,
HOUR_OF_DAY
,
定数フィールド値public static final int HOUR_OF_DAY
get
および set
のためのフィールド値で、時刻を示します。HOUR_OF_DAY
は 24 時間制です。たとえば、10:04:15.250 PM の場合、HOUR_OF_DAY
は 22 になります。
HOUR
,
定数フィールド値public static final int MINUTE
get
および set
のためのフィールド値で、分を示します。たとえば、10:04:15.250 PM の場合、MINUTE
は 4 になります。
public static final int SECOND
get
および set
のためのフィールド値で、秒を示します。たとえば、10:04:15.250 PM の場合、SECOND
は 15 になります。
public static final int MILLISECOND
get
および set
のためのフィールド値で、ミリ秒を示します。たとえば、10:04:15.250 PM の場合、MILLISECOND
は 250 になります。
public static final int ZONE_OFFSET
get
および set
のためのフィールド値です。GMT から直接計算したオフセットをミリ秒単位で示します。
TimeZone
実装サブクラスが、GMTオフセットの歴史的変化をサポートする場合、このフィールドはこの Calendar
のタイムゾーンの正確なGMTオフセット値を反映します。
public static final int DST_OFFSET
get
および set
のためのフィールド値です。夏時間のオフセットをミリ秒単位で示します。
TimeZone
実装サブクラスが、夏時間のスケジュールの歴史的変化をサポートする場合、このフィールドはこの Calendar
のタイムゾーンの正確な夏時間のオフセット値を反映します。
public static final int FIELD_COUNT
get
および set
によって識別される重複しないフィールドの数を示します。フィールド数の範囲は 0..FIELD_COUNT-1
です。
public static final int SUNDAY
DAY_OF_WEEK
フィールドの値です。
public static final int MONDAY
DAY_OF_WEEK
フィールドの値です。
public static final int TUESDAY
DAY_OF_WEEK
フィールドの値です。
public static final int WEDNESDAY
DAY_OF_WEEK
フィールドの値です。
public static final int THURSDAY
DAY_OF_WEEK
フィールドの値です。
public static final int FRIDAY
DAY_OF_WEEK
フィールドの値です。
public static final int SATURDAY
DAY_OF_WEEK
フィールドの値です。
public static final int JANUARY
MONTH
フィールドの値です。
public static final int FEBRUARY
MONTH
フィールドの値です。
public static final int MARCH
MONTH
フィールドの値です。
public static final int APRIL
MONTH
フィールドの値です。
public static final int MAY
MONTH
フィールドの値です。
public static final int JUNE
MONTH
フィールドの値です。
public static final int JULY
MONTH
フィールドの値です。
public static final int AUGUST
MONTH
フィールドの値です。
public static final int SEPTEMBER
MONTH
フィールドの値です。
public static final int OCTOBER
MONTH
フィールドの値です。
public static final int NOVEMBER
MONTH
フィールドの値です。
public static final int DECEMBER
MONTH
フィールドの値です。
public static final int UNDECIMBER
MONTH
フィールドの値です。GregorianCalendar
ではこの値は使いませんが、太陰暦で使用します。
public static final int AM
AM_PM
フィールドの値です。
public static final int PM
AM_PM
フィールドの値です。
public static final int ALL_STYLES
getDisplayNames
のスタイル指示子です。
SHORT
,
LONG
,
定数フィールド値public static final int SHORT
getDisplayName
および getDisplayNames
のスタイル指示子です。
LONG
,
定数フィールド値public static final int LONG
getDisplayName
および getDisplayNames
のスタイル指示子です。
SHORT
,
定数フィールド値protected int[] fields
ERA
から DST_OFFSET
までの、FIELD_COUNT
整数値の配列です。
protected boolean[] isSet
ERA
から DST_OFFSET
までの、FIELD_COUNT
boolean 値の配列です。このカレンダで現在設定されている時刻です。
protected long time
isTimeSet
protected boolean isTimeSet
time
の値が有効である場合は true です。field[]
の項目を変更することで、time は無効になります。
time
protected boolean areFieldsSet
fields[]
が現在設定されている時刻と同期をとっている場合は true です。false の場合は、次にフィールドの値を取得しようとしたときに、time
の現在値からのすべてのフィールドが再計算されます。
コンストラクタの詳細 |
---|
protected Calendar()
TimeZone.getDefault()
protected Calendar(TimeZone zone, Locale aLocale)
zone
- 使用するタイムゾーンaLocale
- 週のデータに使用するロケールメソッドの詳細 |
---|
public static Calendar getInstance()
Calendar
は、デフォルトロケールを持つデフォルトタイムゾーンの現在時刻に基づいています。
public static Calendar getInstance(TimeZone zone)
Calendar
は、デフォルトロケールを持つデフォルトタイムゾーンの現在時刻に基づいています。
zone
- 使用するタイムゾーン
public static Calendar getInstance(Locale aLocale)
Calendar
は、デフォルトロケールを持つ指定されたタイムゾーンの現在時刻に基づいています。
aLocale
- 週のデータに使用するロケール
public static Calendar getInstance(TimeZone zone, Locale aLocale)
Calendar
は、指定されたロケールを持つデフォルトのタイムゾーンの現在時刻に基づいています。
zone
- 使用するタイムゾーンaLocale
- 週のデータに使用するロケール
public static Locale[] getAvailableLocales()
getInstance
メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。返される配列には、Locale.US
と等価な Locale
インスタンスが少なくとも 1 つ含まれている必要があります。
Calendar
インスタンスを使用可能なロケールの配列protected abstract void computeTime()
time
を fields[]
内のカレンダフィールド値に変換します。
complete()
,
computeFields()
protected abstract void computeFields()
time
を fields[]
のカレンダフィールドの値に変換します。これによって、カレンダフィールドの値を、カレンダに設定されている新しい時刻と同期させることができます。time は最初に再計算されません。time を再計算してからフィールドを再計算するには、complete()
メソッドを呼び出します。
computeTime()
public final Date getTime()
Calendar
の時刻値 (「エポック」からのミリ秒単位のオフセット) を表す Date
オブジェクトを返します。
Date
setTime(Date)
,
getTimeInMillis()
public final void setTime(Date date)
Date
に設定します。
注:Date(Long.MAX_VALUE)
または Date(Long.MIN_VALUE)
で setTime()
を呼び出すと、get()
から不正確なフィールド値が生じることがあります。
date
- 指定する DategetTime()
,
setTimeInMillis(long)
public long getTimeInMillis()
getTime()
,
setTimeInMillis(long)
public void setTimeInMillis(long millis)
millis
- エポックからの UTC ミリ秒値で表される新しい時刻setTime(Date)
,
getTimeInMillis()
public int get(int field)
complete()
メソッドにより処理されます。この処理は、カレンダシステムにより異なります。
field
- 指定されたカレンダフィールド
ArrayIndexOutOfBoundsException
- 指定されたフィールドが範囲外の場合 (field < 0 || field >= FIELD_COUNT
)set(int,int)
,
complete()
protected final int internalGet(int field)
field
- 指定されたカレンダフィールド
get(int)
public void set(int field, int value)
field
- 指定されたカレンダフィールドvalue
- 指定されたカレンダフィールドに設定する値
ArrayIndexOutOfBoundsException
- 厳密性モードで、指定されたフィールドが範囲外の場合 (field < 0 || field >= FIELD_COUNT
)set(int,int,int)
,
set(int,int,int,int,int)
,
set(int,int,int,int,int,int)
,
get(int)
public final void set(int year, int month, int date)
YEAR
、MONTH
、および DAY_OF_MONTH
の値を設定します。ほかのカレンダフィールドの以前の値は保持されます。保持されないようにする場合は、最初に clear()
を呼び出します。
year
- YEAR
カレンダフィールドの設定に使用する値month
- MONTH
カレンダフィールドの設定に使用する値。Month 値は 0 から始まる (1 月 は 0 になる)date
- DAY_OF_MONTH
カレンダフィールドの設定に使用する値set(int,int)
,
set(int,int,int,int,int)
,
set(int,int,int,int,int,int)
public final void set(int year, int month, int date, int hourOfDay, int minute)
YEAR
、MONTH
、DAY_OF_MONTH
、HOUR_OF_DAY
、および MINUTE
の値を設定します。ほかのフィールドの以前の値は保持されます。保持されないようにする場合は、最初に clear()
を呼び出します。
year
- YEAR
カレンダフィールドの設定に使用する値month
- MONTH
カレンダフィールドの設定に使用する値。Month 値は 0 から始まる (1 月 は 0 になる)date
- DAY_OF_MONTH
カレンダフィールドの設定に使用する値hourOfDay
- HOUR_OF_DAY
カレンダフィールドの設定に使用する値minute
- MINUTE
カレンダフィールドの設定に使用する値set(int,int)
,
set(int,int,int)
,
set(int,int,int,int,int,int)
public final void set(int year, int month, int date, int hourOfDay, int minute, int second)
YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
、MINUTE
、および SECOND
の値を設定します。ほかのフィールドの以前の値は保持されます。保持されないようにする場合は、最初に clear()
を呼び出します。
year
- YEAR
カレンダフィールドの設定に使用する値month
- MONTH
カレンダフィールドの設定に使用する値。Month 値は 0 から始まる (1 月 は 0 になる)date
- DAY_OF_MONTH
カレンダフィールドの設定に使用する値hourOfDay
- HOUR_OF_DAY
カレンダフィールドの設定に使用する値minute
- MINUTE
カレンダフィールドの設定に使用する値second
- SECOND
カレンダフィールドの設定に使用する値set(int,int)
,
set(int,int,int)
,
set(int,int,int,int,int)
public final void clear()
Calendar
のすべてのカレンダフィールド値および時刻値 (エポックからのミリ秒単位のオフセット) を未定義に設定します。これは、isSet()
がすべてのカレンダフィールドで false
を返し、日付および時刻計算でフィールドがこれまで設定されたことがないかのように処理されることを意味します。Calendar
実装クラスは、固有のデフォルトフィールド値を日付/時刻計算に使用できます。たとえば、YEAR
フィールド値が未定義の場合、GregorianCalendar
は 1970 を使用します。
clear(int)
public final void clear(int field)
Calendar
の指定されたカレンダフィールド値および時刻値 (エポックからのミリ秒単位のオフセット) を未定義に設定します。これは、isSet(field)
が false
を返すこと、および日付と時刻計算でフィールドがこれまで設定されたことがないかのように処理されることを意味します。Calendar
実装クラスは、日付および時刻計算にフィールド固有のデフォルト値を使用できます。
HOUR_OF_DAY
、HOUR
、および AM_PM
フィールドはそれぞれ別個に処理され、時間の解決規則が適用されます。フィールドのいずれかをクリアしても、この Calendar
の「時」はリセットされません。「時」の値をリセットするには、set(Calendar.HOUR_OF_DAY, 0)
を使用します。
field
- クリアするカレンダフィールドclear()
public final boolean isSet(int field)
get
メソッド呼び出しによりトリガーされた内部フィールド計算で値が設定された場合も、値セットを保持するとみなされます。
true
、そうでない場合は false
public String getDisplayName(int field, int style, Locale locale)
style
と locale
のカレンダ field
値の文字列表現を返します。適用できる文字列表現がない場合は、null
が返されます。このメソッドは、文字列表現が指定されたカレンダ field
に適用可能な場合に、get(field)
を呼び出してカレンダ field
値を取得します。
たとえば、この Calendar
が GregorianCalendar
であり、その日付が 2005-01-01 の場合、MONTH
フィールドの文字列表現は、英語ロケールの長いスタイルでは「January」になり、短いスタイルでは「Jan」になります。ただし、DAY_OF_MONTH
フィールドでは文字列表現を使用できず、このメソッドは null
を返します。
デフォルトの実装は、DateFormatSymbols
に特定の locale
の名前が含まれるカレンダフィールドをサポートします。
field
- 文字列表現が返されるカレンダフィールドstyle
- 文字列表現に適用されるスタイル。SHORT
と LONG
のいずれかlocale
- 文字列表現のロケール
style
の指定された field
の文字列表現。適用できる文字列表現がない場合は、null
IllegalArgumentException
- field
または style
が無効な場合、またはこの Calendar
が厳密モードで、カレンダフィールドのいずれかに無効な値が含まれている場合
NullPointerException
- locale
が null の場合public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
style
および locale
のカレンダ field
のすべての名前と、それに対応するフィールド値を含む Map
を返します。たとえば、この Calendar
が GregorianCalendar
の場合、返されるマップには、英語ロケールの短いスタイルでは、JANUARY
に対する「Jan」、FEBRUARY
に対する「Feb」などが含まれます。
その他のカレンダフィールドの値が、表示名のセットを決定するときに考慮されることがあります。たとえば、この Calendar
が太陰太陽暦システムであり、YEAR
フィールドによって指定される年の値にうるう月がある場合、このメソッドはうるう月の名前を含む月の名前を返し、月の名前はその年に固有の値にマップされます。
デフォルト実装は、DateFormatSymbols
に含まれる表示名をサポートします。たとえば、field
が MONTH
で style
が ALL_STYLES
の場合、このメソッドは、DateFormatSymbols.getShortMonths()
および DateFormatSymbols.getMonths()
によって返されるすべての文字列を含む Map
を返します。
field
- 表示名が返されるカレンダフィールドstyle
- 表示名に適用されるスタイル。SHORT
、LONG
、ALL_STYLES
のいずれかlocale
- 表示名のロケール
style
と locale
のすべての表示名とそれらのフィールド値を含む Map
。field
に表示名が定義されていない場合は、null
IllegalArgumentException
- field
または style
が無効な場合、またはこの Calendar
が厳密モードで、カレンダフィールドのいずれかに無効な値が含まれている場合
NullPointerException
- locale
が null の場合protected void complete()
computeTime()
メソッドが呼び出されます。次に、computeFields()
メソッドが呼び出されて、すべてのカレンダフィールド値が計算されます。
public boolean equals(Object obj)
Calendar
を指定された Object
と比較します。引数が、このオブジェクトと同じ Calendar
パラメータの同じ時刻値 (エポックからのミリ秒単位のオフセット) を表す同じカレンダシステムの Calendar
オブジェクトである場合にのみ、結果は true
になります。
Calendar
パラメータは、isLenient
、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、および getTimeZone
メソッドにより表現される値です。2 つの Calendar
間のパラメータに相違がある場合、このメソッドは false
を返します。
時刻値だけを比較する場合は、compareTo
メソッドを使用します。
Object
内の equals
obj
- 比較対象のオブジェクト
obj
と等しい場合は true
、そうでない場合は false
Object.hashCode()
,
Hashtable
public int hashCode()
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean before(Object when)
Calendar
が、指定された Object
の表す時刻より前の時刻を表すかどうかを返します。このメソッドは、次と同等です。
等価になるのは、compareTo(when) < 0
when
が Calendar
インスタンスである場合だけです。そうでない場合、このメソッドは false
を返します。
when
- 比較対象の Object
Calendar
の時刻が when
で表される時刻よりも前の場合は true
、そうでない場合は false
compareTo(Calendar)
public boolean after(Object when)
Calendar
が、指定された Object
の表す時刻よりあとの時刻を表すかどうかを返します。このメソッドは、次と同等です。
等価になるのは、compareTo(when) > 0
when
が Calendar
インスタンスである場合だけです。そうでない場合、このメソッドは false
を返します。
when
- 比較対象の Object
Calendar
の時刻が when
で表される時刻よりも後の場合は true
、そうでない場合は false
compareTo(Calendar)
public int compareTo(Calendar anotherCalendar)
Calendar
オブジェクトで表される時刻値 (エポックからのミリ秒単位のオフセット) を比較します。
Comparable<Calendar>
内の compareTo
anotherCalendar
- 比較対象の Calendar
Calendar
の表す時刻と等しい場合の値は 0
。この Calendar
の時刻が引数で表される時刻より前の場合は 0
未満の値。この Calendar
の時刻が引数で表される時刻よりあとの場合は、0
より大きい値
NullPointerException
- 指定された Calendar
が null
の場合
IllegalArgumentException
- カレンダ値が無効なため、指定された Calendar
オブジェクトの時刻値を取得できない場合public abstract void add(int field, int amount)
add(Calendar.DAY_OF_MONTH, -5)
field
- カレンダフィールドamount
- フィールドに追加される日付または時刻の量roll(int,int)
,
set(int,int)
public abstract void roll(int field, boolean up)
roll(Calendar.DATE, true)。年または Calendar.YEAR フィールドを動かすと、年の値は、1 と getMaximum(Calendar.YEAR)
で返される値の範囲の年に変わります。月または Calendar.MONTH フィールドを動かすと、日付などのほかのフィールドが矛盾を起こす場合があるので、その場合はそれらのフィールドを変更する必要があります。たとえば、日付 01/31/96 の月を動かすと、結果は 02/29/96 となります。日の時間または Calendar.HOUR_OF_DAY フィールドを動かすと、時の値は、0 と 23 の範囲の値 (ゼロベース) に変わります。
field
- 時間フィールドup
- 指定された時間フィールドの値を上へ動かすのか、下へ動かすのかを指定する。上へ動かす場合は true、そうでない場合は false を使用するadd(int,int)
,
set(int,int)
public void roll(int field, int amount)
注:Calendar
に対するこのデフォルト実装は、一単位だけローリングする roll()
のバージョンを繰り返し呼び出します。これは常に適切に動作するとは限りません。たとえば、DAY_OF_MONTH
フィールド が 31 の場合、2 月をローリングすると、そのフィールドを 28 に設定したままにします。この機能の GregorianCalendar
バージョンはこの問題に対応しています。ほかのサブクラスではこの機能の無効化も提供する必要があり、これは適切な動作です。
field
- カレンダフィールドamount
- カレンダ field
に追加する指定された量roll(int,boolean)
,
add(int,int)
,
set(int,int)
public void setTimeZone(TimeZone value)
value
- 指定するタイムゾーンpublic TimeZone getTimeZone()
public void setLenient(boolean lenient)
lenient
- 非厳密モードがオンの場合は true
、そうでない場合は false
isLenient()
,
DateFormat.setLenient(boolean)
public boolean isLenient()
true
、そうでない場合は false
setLenient(boolean)
public void setFirstDayOfWeek(int value)
SUNDAY
、フランスでは MONDAY
です。
value
- 指定された週の最初の日getFirstDayOfWeek()
,
getMinimalDaysInFirstWeek()
public int getFirstDayOfWeek()
SUNDAY
、フランスでは MONDAY
です。
setFirstDayOfWeek(int)
,
getMinimalDaysInFirstWeek()
public void setMinimalDaysInFirstWeek(int value)
value
- 年の最初の週に必要な指定された最小日数getMinimalDaysInFirstWeek()
public int getMinimalDaysInFirstWeek()
setMinimalDaysInFirstWeek(int)
public abstract int getMinimum(int field)
Calender
インスタンスで指定されたカレンダフィールドの最小値を返します。最小値は、すべての可能な時間値に対して get
メソッドで返された最小値として定義されます。最小値は、インスタンスの特定のパラメータを持つそれぞれのカレンダシステムによって異なります。
field
- カレンダフィールド
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public abstract int getMaximum(int field)
Calender
インスタンスで指定されたカレンダフィールドの最大値を返します。最大値は、すべての可能な時間値に対して get
メソッドで返された最大値として定義されます。最大値は、インスタンスの特定のパラメータを持つそれぞれのカレンダシステムによって異なります。
field
- カレンダフィールド
getMinimum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public abstract int getGreatestMinimum(int field)
Calender
インスタンスで指定されたカレンダフィールドの最大最小値を返します。最大最小値は、すべての可能な時間値に対して getActualMinimum(int)
メソッドで返された最大値として定義されます。最大最小値は、インスタンスの特定のパラメータを持つそれぞれのカレンダシステムによって異なります。
field
- カレンダフィールド
getMinimum(int)
,
getMaximum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public abstract int getLeastMaximum(int field)
Calendar
インスタンスで指定されたカレンダフィールドの最小最大値を返します。最小最大値は、すべての可能な時間値に対して getActualMaximum(int)
で返される最小値として定義されます。最小最大値は、インスタンスの特定のパラメータを持つそれぞれのカレンダシステムによって異なります。たとえば、グレゴリオ暦のシステムの Calendar
では、 DAY_OF_MONTH
フィールドに 28 が返されます。これは、このカレンダでは日数がもっとも少ない月の最後の日が、平年の 2 月の 28 番目の日であるためです。
field
- カレンダフィールド
getMinimum(int)
,
getMaximum(int)
,
getGreatestMinimum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public int getActualMinimum(int field)
Calendar
の時間値を指定した、指定のカレンダのフィールドが取り得る最小の値を返します。
このメソッドのデフォルトの実装では、カレンダフィールドの実際の最小値を決定するために反復アルゴリズムを使用します。可能な場合はサブクラスがこれをより効率的な実装でオーバーライドします。多くの場合、実際には単に getMinimum ()
が返されることによってオーバーライドされます。
field
- カレンダフィールド
Calendar
の時間値に対する、指定されたカレンダフィールドの最小値getMinimum(int)
,
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMaximum(int)
public int getActualMaximum(int field)
Calendar
に時間値を指定した特定のカレンダフィールドが取り得る最大値を返します。たとえば、 MONTH
フィールドの実際の最大値は、ある年では 12 になり、ユダヤ暦システムの場合の別の年では 13 になります。
このメソッドのデフォルトの実装では、カレンダフィールドの実際の最大値を決定するために反復アルゴリズムを使用します。可能な場合はサブクラスがこれをより効率的な実装でオーバーライドします。
field
- カレンダフィールド
Calendar
の時間値に対する、指定されたカレンダフィールドの最大値getMinimum(int)
,
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
public Object clone()
Object
内の clone
Cloneable
public String toString()
null
にはなりません。
Object
内の toString
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。