- すべての実装されたインタフェース:
Serializable,Comparable<ChronoLocalDate>,ChronoLocalDate,Temporal,TemporalAccessor,TemporalAdjuster
public final class LocalDate extends Object implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable
2007-12-03など。
LocalDateは、日付(年-月-日として表示されることが多い)を表す不変の日付/時間オブジェクトです。 他の日付フィールド(「年の日」、曜日、「年の週番号」など)にもアクセスできます。 たとえば、「2007年10月2日」という値をLocalDateに格納できます。
このクラスでは、時間またはタイムゾーンを格納したり表現したりしません。 むしろこれは、誕生日に使用されるような日付に関する記述です。 オフセットやタイムゾーンなどの追加情報がなければ、時系列上にインスタントを表現することはできません。
ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。 今日作成されているほとんどのアプリケーションには、ISO-8601のルールが完全に適しています。 ただし、歴史的な日付を使用し、それらが正確であることを必要とするアプリケーションには、ISO-8601の方法が適さないことがわかります。
これは値ベースのクラスです。LocalDateのインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。 比較する場合は、equalsメソッドを使用することをお薦めします。
- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
- 直列化された形式
-
フィールドのサマリー
-
メソッドのサマリー
修飾子と型 メソッド 説明 TemporaladjustInto(Temporal temporal)指定された一時オブジェクトをこのオブジェクトと同じ日付になるように調整します。LocalDateTimeatStartOfDay()この日付を深夜零時と組み合せて、この日付の開始時のLocalDateTimeを作成します。ZonedDateTimeatStartOfDay(ZoneId zone)タイムゾーンのルールに従って、この日付のもっとも早い有効な時間からゾーン付きの日付/時間を返します。LocalDateTimeatTime(int hour, int minute)この日付を時間と組み合せてLocalDateTimeを作成します。LocalDateTimeatTime(int hour, int minute, int second)この日付を時間と組み合せてLocalDateTimeを作成します。LocalDateTimeatTime(int hour, int minute, int second, int nanoOfSecond)この日付を時間と組み合せてLocalDateTimeを作成します。LocalDateTimeatTime(LocalTime time)この日付を時間と組み合せてLocalDateTimeを作成します。OffsetDateTimeatTime(OffsetTime time)この日付をオフセット時間と組み合せてOffsetDateTimeを作成します。intcompareTo(ChronoLocalDate other)この日付を別の日付と比較します。Stream<LocalDate>datesUntil(LocalDate endExclusive)順序付けられた日付のストリームを返します。Stream<LocalDate>datesUntil(LocalDate endExclusive, Period step)指定された増分ステップで日付の連続した順序付けされたストリームを返します。booleanequals(Object obj)この日付がもう一方の日付と等しいかどうかを確認します。Stringformat(DateTimeFormatter formatter)指定されたフォーマッタを使用してこの日付を書式設定します。static LocalDatefrom(TemporalAccessor temporal)時間的オブジェクトからLocalDateのインスタンスを取得します。intget(TemporalField field)指定されたフィールドの値をこの日付からintとして取得します。IsoChronologygetChronology()ISO暦体系であるこの日付の暦を取得します。intgetDayOfMonth()「月の日」フィールドを取得します。DayOfWeekgetDayOfWeek()列挙型DayOfWeekである曜日フィールドを取得します。intgetDayOfYear()「年の日」フィールドを取得します。IsoEragetEra()この日付で使用可能な紀元を取得します。longgetLong(TemporalField field)指定されたフィールドの値をこの日付からlongとして取得します。MonthgetMonth()列挙型Monthを使用して、月フィールドを取得します。intgetMonthValue()月フィールドを取得します(1-12)。intgetYear()年フィールドを取得します。inthashCode()この日付のハッシュ・コード。booleanisAfter(ChronoLocalDate other)この日付が、指定された日付より後にあるかどうかをチェックします。booleanisBefore(ChronoLocalDate other)この日付が、指定された日付より前にあるかどうかをチェックします。booleanisEqual(ChronoLocalDate other)この日付が、指定された日付と等しいかどうかをチェックします。booleanisLeapYear()ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。booleanisSupported(TemporalField field)指定されたフィールドがサポートされているかどうかをチェックします。booleanisSupported(TemporalUnit unit)指定された単位がサポートされているかどうかをチェックします。intlengthOfMonth()この日付によって表される月の長さを返します。intlengthOfYear()この日付によって表される年の長さを返します。LocalDateminus(long amountToSubtract, TemporalUnit unit)指定された量を減算した、この日付のコピーを返します。LocalDateminus(TemporalAmount amountToSubtract)指定された量を減算した、この日付のコピーを返します。LocalDateminusDays(long daysToSubtract)指定された日数を減算した、このLocalDateのコピーを返します。LocalDateminusMonths(long monthsToSubtract)指定された月数を減算した、このLocalDateのコピーを返します。LocalDateminusWeeks(long weeksToSubtract)指定された週数を減算した、このLocalDateのコピーを返します。LocalDateminusYears(long yearsToSubtract)指定された年数を減算した、このLocalDateのコピーを返します。static LocalDatenow()デフォルトのタイムゾーンのシステム・クロックから現在の日付を取得します。static LocalDatenow(Clock clock)指定されたクロックから現在の日付を取得します。static LocalDatenow(ZoneId zone)指定されたタイムゾーンのシステム・クロックから現在の日付を取得します。static LocalDateof(int year, int month, int dayOfMonth)年、月、および日からLocalDateのインスタンスを取得します。static LocalDateof(int year, Month month, int dayOfMonth)年、月、および日からLocalDateのインスタンスを取得します。static LocalDateofEpochDay(long epochDay)エポック日数からLocalDateのインスタンスを取得します。static LocalDateofInstant(Instant instant, ZoneId zone)InstantとゾーンIDからLocalDateのインスタンスを取得します。static LocalDateofYearDay(int year, int dayOfYear)年および「年の日」からLocalDateのインスタンスを取得します。static LocalDateparse(CharSequence text)2007-12-03などのテキスト文字列からLocalDateのインスタンスを取得します。static LocalDateparse(CharSequence text, DateTimeFormatter formatter)特定のフォーマッタを使用して、テキスト文字列からLocalDateのインスタンスを取得します。LocalDateplus(long amountToAdd, TemporalUnit unit)この日付のコピーに指定された時間を追加したものを返します。LocalDateplus(TemporalAmount amountToAdd)この日付のコピーに指定された時間を追加したものを返します。LocalDateplusDays(long daysToAdd)指定された日数を加算した、このLocalDateのコピーを返します。LocalDateplusMonths(long monthsToAdd)指定された月数を加算した、このLocalDateのコピーを返します。LocalDateplusWeeks(long weeksToAdd)指定された週数を加算した、このLocalDateのコピーを返します。LocalDateplusYears(long yearsToAdd)指定された年数を加算した、このLocalDateのコピーを返します。<R> Rquery(TemporalQuery<R> query)指定された問合せを使用してこの日付を問い合わせます。ValueRangerange(TemporalField field)指定されたフィールドの有効な値の範囲を取得します。longtoEpochSecond(LocalTime time, ZoneOffset offset)このLocalDateを1970-01-01T00:00:00Zの時代からの秒数に変換します。StringtoString()この日付をStringとして出力します(2007-12-03など)。Perioduntil(ChronoLocalDate endDateExclusive)この日付からもう一方の日付までの期間をPeriodとして計算します。longuntil(Temporal endExclusive, TemporalUnit unit)もう一方の日付までの時間量を指定された単位で計算します。LocalDatewith(TemporalAdjuster adjuster)この日付の調整済のコピーを返します。LocalDatewith(TemporalField field, long newValue)指定されたフィールドを新しい値に設定して、この日付のコピーを返します。LocalDatewithDayOfMonth(int dayOfMonth)「月の日」を変更して、このLocalDateのコピーを返します。LocalDatewithDayOfYear(int dayOfYear)「年の日」を変更して、このLocalDateのコピーを返します。LocalDatewithMonth(int month)「年の月」を変更して、このLocalDateのコピーを返します。LocalDatewithYear(int year)年を変更して、このLocalDateのコピーを返します。
-
フィールド詳細
-
MIN
public static final LocalDate MINサポートされている最小のLocalDateである「-999999999-01-01」。 これは、アプリケーションによって「遠い過去」の日付として使用されることがあります。 -
MAX
public static final LocalDate MAXサポートされている最大のLocalDateである「+999999999-12-31」。 これは、アプリケーションによって「遠い将来」の日付として使用されることがあります。 -
EPOCH
public static final LocalDate EPOCHエポック年LocalDate、'1970-01-01'。
-
-
メソッドの詳細
-
now
public static LocalDate now()デフォルトのタイムゾーンのシステム・クロックから現在の日付を取得します。これは、デフォルトのタイムゾーンの
system clockを問い合わせ、現在の日付を取得します。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
- 戻り値:
- システムクロックとデフォルトのタイムゾーンを使用した現在の日付、null以外
-
now
指定されたタイムゾーンのシステム・クロックから現在の日付を取得します。これは
system clockを問い合わせて、現在の日付を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
- パラメータ:
zone- 使用するゾーンID、null以外- 戻り値:
- システムクロックを使用した現在の日付、null以外
-
now
指定されたクロックから現在の日付を取得します。これは指定されたクロックを問い合わせ、現在の日付(今日)を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは
dependency injectionを使用して導入できます。- パラメータ:
clock- 使用するクロック、null以外- 戻り値:
- 現在の日付、null以外
-
of
年、月、および日からLocalDateのインスタンスを取得します。これは、指定された年、月、および「月の日」を使って
LocalDateを返します。 日は年と月に対して有効である必要があり、そうでない場合は、例外がスローされます。- パラメータ:
year- 表す年(MIN_YEARからMAX_YEARまで)month- 表される月。null以外dayOfMonth- 表される「月の日」(1-31)- 戻り値:
- ローカル日付。null以外
- 例外:
DateTimeException- いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合
-
of
public static LocalDate of(int year, int month, int dayOfMonth)年、月、および日からLocalDateのインスタンスを取得します。これは、指定された年、月、および「月の日」を使って
LocalDateを返します。 日は年と月に対して有効である必要があり、そうでない場合は、例外がスローされます。- パラメータ:
year- 表す年(MIN_YEARからMAX_YEARまで)month- 表される月。1(1月)-12(12月)dayOfMonth- 表される「月の日」(1-31)- 戻り値:
- ローカル日付。null以外
- 例外:
DateTimeException- いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合
-
ofYearDay
public static LocalDate ofYearDay(int year, int dayOfYear)年および「年の日」からLocalDateのインスタンスを取得します。これは、指定された年および「年の日」を使って
LocalDateを返します。 「年の日」はその年に有効である必要があり、そうでない場合は例外がスローされます。- パラメータ:
year- 表す年(MIN_YEARからMAX_YEARまで)dayOfYear- 表される「年の日」(1-366)- 戻り値:
- ローカル日付。null以外
- 例外:
DateTimeException- いずれかのフィールドの値が範囲外にある場合、または「年の日」がその月に有効でない場合
-
ofInstant
InstantとゾーンIDからLocalDateのインスタンスを取得します。これにより、指定された瞬間に基づいてローカル日付が作成されます。 まず、ゾーンIDとインスタントを使用してUTC/グリニッジからのオフセットが取得されます。有効なオフセットはインスタントごとに1つしかないため、これは単純です。 次に、インスタントとオフセットを使用してローカル日付を計算します。
- パラメータ:
instant- からの日付を作成するインスタント、nullではないzone- タイムゾーン。オフセットの場合もある。null以外- 戻り値:
- ローカル日付。null以外
- 例外:
DateTimeException- 結果がサポートされている範囲を超える場合- 導入されたバージョン:
- 9
-
ofEpochDay
public static LocalDate ofEpochDay(long epochDay)エポック日数からLocalDateのインスタンスを取得します。これは、指定されたエポック日を使って
LocalDateを返します。EPOCH_DAYは、0日目が1970-01-01である、単純に増加していく日数です。 負の数はそれ以前の時期を表します。- パラメータ:
epochDay- エポック(1970-01-01)に基づいて変換するエポック日- 戻り値:
- ローカル日付。null以外
- 例外:
DateTimeException- エポック日がサポートされている日付の範囲を超える場合
-
from
public static LocalDate from(TemporalAccessor temporal)時間的オブジェクトからLocalDateのインスタンスを取得します。これは、指定されたtemporal (一時)に基づいてローカル日付を取得します。
TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでLocalDateのインスタンスに変換されます。この変換では、
EPOCH_DAYフィールドを抽出することに依存しているTemporalQueries.localDate()問合せを使用します。このメソッドは関数型インタフェース
TemporalQueryのシグネチャに一致するため、メソッド参照LocalDate::fromを介して問合せとして使用できます。- パラメータ:
temporal- 変換する一時オブジェクト、null以外- 戻り値:
- ローカル日付。null以外
- 例外:
DateTimeException-LocalDateに変換できない場合- 関連項目:
Chronology.date(TemporalAccessor)
-
parse
public static LocalDate parse(CharSequence text)2007-12-03などのテキスト文字列からLocalDateのインスタンスを取得します。この文字列は有効な日付を表している必要があり、
DateTimeFormatter.ISO_LOCAL_DATEを使って解析されます。- パラメータ:
text- 「2007-12-03」などの解析対象のテキスト。null以外- 戻り値:
- 解析されたローカル日付。null以外
- 例外:
DateTimeParseException- テキストが解析できない場合
-
parse
public static LocalDate parse(CharSequence text, DateTimeFormatter formatter)特定のフォーマッタを使用して、テキスト文字列からLocalDateのインスタンスを取得します。そのテキストがフォーマッタを使って解析され、日付が返されます。
- パラメータ:
text- 解析するテキスト。null以外formatter- 使用するフォーマッタ、null以外- 戻り値:
- 解析されたローカル日付。null以外
- 例外:
DateTimeParseException- テキストが解析できない場合
-
isSupported
public boolean isSupported(TemporalField field)指定されたフィールドがサポートされているかどうかをチェックします。これは、指定されたフィールドに対して、この日付を問合せできるかどうかをチェックします。 falseの場合、
range、get、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。フィールドが
ChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。DAY_OF_WEEKALIGNED_DAY_OF_WEEK_IN_MONTHALIGNED_DAY_OF_WEEK_IN_YEARDAY_OF_MONTHDAY_OF_YEAREPOCH_DAYALIGNED_WEEK_OF_MONTHALIGNED_WEEK_OF_YEARMONTH_OF_YEARPROLEPTIC_MONTHYEAR_OF_ERAYEARERA
ChronoFieldインスタンスはfalseを返します。フィールドが
ChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。- 定義:
- インタフェース
ChronoLocalDateのisSupported - 定義:
- インタフェース
TemporalAccessorのisSupported - パラメータ:
field- チェックするフィールド、nullはfalseを返す- 戻り値:
- フィールドがこの日付でサポートされている場合はtrue、そうでない場合はfalse
-
isSupported
public boolean isSupported(TemporalUnit unit)指定された単位がサポートされているかどうかをチェックします。これは、指定された単位をこの日付に加算または減算できるかどうかをチェックします。 falseの場合、
plus(long, TemporalUnit)およびminusメソッドの呼び出しは、例外をスローします。単位が
ChronoUnitの場合、問合せはここで実装されます。 サポートされる単位は次のとおりです。DAYSWEEKSMONTHSYEARSDECADESCENTURIESMILLENNIAERAS
ChronoUnitインスタンスはfalseを返します。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.isSupportedBy(Temporal)を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。- 定義:
- インタフェース
ChronoLocalDateのisSupported - 定義:
- インタフェース
TemporalのisSupported - パラメータ:
unit- チェックする単位、nullはfalseを返す- 戻り値:
- 単位を加算/減算できる場合はtrue、できない場合はfalse
-
range
public ValueRange range(TemporalField field)指定されたフィールドの有効な値の範囲を取得します。範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この日付は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのrange - パラメータ:
field- 範囲を問い合わせるフィールド、null以外- 戻り値:
- フィールドの有効値の範囲。null以外
- 例外:
DateTimeException- フィールドの範囲を取得できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合
-
get
public int get(TemporalField field)指定されたフィールドの値をこの日付からintとして取得します。これは、指定したフィールドの値についてこの日付に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。EPOCH_DAYとPROLEPTIC_MONTHを除いて、intに収まりきってUnsupportedTemporalTypeExceptionを投げるのを除いて、supported fieldsはこの日付に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのget - パラメータ:
field- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- 例外:
DateTimeException- フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合、または値の範囲がintを超えている場合ArithmeticException- 数値のオーバーフローが発生した場合
-
getLong
public long getLong(TemporalField field)指定されたフィールドの値をこの日付からlongとして取得します。これは、指定したフィールドの値についてこの日付に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドは、この日付に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのgetLong - パラメータ:
field- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- 例外:
DateTimeException- フィールドの値を取得できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
getChronology
public IsoChronology getChronology()ISO暦体系であるこの日付の暦を取得します。Chronologyは使用中の暦体系を表します。 ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。- 定義:
- インタフェース
ChronoLocalDateのgetChronology - 戻り値:
- ISOの暦。null以外
-
getEra
public IsoEra getEra()この日付で使用可能な紀元を取得します。公式のISO-8601標準では紀元を定義していませんが、
IsoChronologyでは定義しています。 それは、1年以降の「CE」と0年以前の「BCE」の2つの紀元を定義しています。 ユリウスとグレゴリオの切換え前の日付は歴史に沿っていないため、「BCE」と「CE」の切り換えも一般的に使用される紀元(「BC」と「AD」の使用を指すことが多い)と揃っていません。このメソッドは主として
ChronoLocalDateの規定(和暦をサポートする必要がある)を満たすために存在しているため、このクラスのユーザーは通常それを無視するようにしてください。- 定義:
- インタフェース
ChronoLocalDateのgetEra - 戻り値:
- この日に適用されるIsoEra、nullではない
-
getYear
public int getYear()年フィールドを取得します。このメソッドは、年を表すプリミティブな
int値を返します。このメソッドで返される年は、
get(YEAR)のように予期的なものです。 紀元年を取得するには、get(YEAR_OF_ERA)を使用します。- 戻り値:
- 年。MIN_YEARからMAX_YEARまで
-
getMonthValue
public int getMonthValue()月フィールドを取得します(1-12)。このメソッドは、月を1-12の
intとして返します。getMonth()を呼び出すことで列挙型Monthが使用される場合は、アプリケーション・コードがより明確になることが多くなります。- 戻り値:
- 月(1-12)
- 関連項目:
getMonth()
-
getMonth
public Month getMonth()列挙型Monthを使用して、月フィールドを取得します。このメソッドは、月を表す列挙型
Monthを返します。 これによって、int値が意味する内容に関する混乱を回避できます。 プリミティブなint値にアクセスする必要がある場合、この列挙型はint値を提供します。- 戻り値:
- 月。null以外
- 関連項目:
getMonthValue()
-
getDayOfMonth
public int getDayOfMonth()「月の日」フィールドを取得します。このメソッドは、「月の日」を表すプリミティブな
int値を返します。- 戻り値:
- 「月の日」(1-31)
-
getDayOfYear
public int getDayOfYear()「年の日」フィールドを取得します。このメソッドは、「年の日」を表すプリミティブな
int値を返します。- 戻り値:
- 「年の日」。1-365または1-366(うるう年の場合)
-
getDayOfWeek
public DayOfWeek getDayOfWeek()列挙型DayOfWeekである曜日フィールドを取得します。このメソッドは、曜日を表す列挙型
DayOfWeekを返します。 これによって、int値が意味する内容に関する混乱を回避できます。 プリミティブなint値にアクセスする必要がある場合、この列挙型はint値を提供します。DayOfWeekからは追加情報を取得できます。 具体的には、それらの値のテキスト名などがあります。- 戻り値:
- 曜日、null以外
-
isLeapYear
public boolean isLeapYear()ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。このメソッドは、時系列全体にわたって、うるう年の現在のルールを適用します。 一般に、年は4で割り切れる場合にうるう年です。 ただし、400で割り切れる年を除き、100で割り切れる年はうるう年ではありません。
たとえば、1904年は4で割り切れるうるう年です。1900年は100で割り切れるため、うるう年ではありませんでしたが、2000年は400で割り切れるため、うるう年でした。
計算は先発暦で、遠い将来および遠い過去にも同じルールが適用されます。 これは歴史的には正確ではありませんが、ISO-8601規格には正確です。
- 定義:
- インタフェース
ChronoLocalDateのisLeapYear - 戻り値:
- 年がうるう年の場合はtrue、それ以外の場合はfalse
-
lengthOfMonth
public int lengthOfMonth()この日付によって表される月の長さを返します。これは月の長さを日数で返します。 たとえば、1月の日付は31を返します。
- 定義:
- インタフェース
ChronoLocalDateのlengthOfMonth - 戻り値:
- 日数での月の長さ
-
lengthOfYear
public int lengthOfYear()この日付によって表される年の長さを返します。これは、その年の長さを日数(365または366)で返します。
- 定義:
- インタフェース
ChronoLocalDateのlengthOfYear - 戻り値:
- その年がうるう年の場合は366、それ以外の場合は365
-
with
public LocalDate with(TemporalAdjuster adjuster)この日付の調整済のコピーを返します。これは、日付を調整して、この日付に基づく
LocalDateを返します。 調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。 どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。 複雑なアジャスタは、日付を月の最後の日に設定するなどです。
一般的な調整の選択は、
TemporalAdjustersで指定します。 これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。 主要な日付/時間クラス(MonthやMonthDayなど)も、TemporalAdjusterインタフェースを実装します。 アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。たとえば、このコードでは7月の最後の日の日付を返します。
import static java.time.Month.*; import static java.time.temporal.TemporalAdjusters.*; result = localDate.with(JULY).with(lastDayOfMonth());
このメソッドの結果は、指定されたアジャスタで
thisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのwith - 定義:
- インタフェース
Temporalのwith - パラメータ:
adjuster- 使用するアジャスタ、null以外- 戻り値:
- 調整が行われた、
これに基づくLocalDate。null以外 - 例外:
DateTimeException- 調整ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
with
public LocalDate with(TemporalField field, long newValue)指定されたフィールドを新しい値に設定して、この日付のコピーを返します。これは、指定されたフィールドの値を変更して、この日付に基づく
LocalDateを返します。 これを使用すると、年、月、「月の日」などのサポートされているフィールドを変更できます。 値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。場合によっては、指定されたフィールドを変更すると、結果となる日付が無効になることがあります(1月31日の月を2月に変更すると、「月の日」が無効になるなど)。 このような場合、そのフィールドは日付の解決を行います。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
フィールドが
ChronoFieldの場合は、調整はここで実装されます。 サポートされるフィールドは次のように動作します。DAY_OF_WEEK- 指定された曜日を使ってLocalDateを返します。 日付は、月曜日から日曜日までの週の範囲内で最大6日間、前後に調整されます。ALIGNED_DAY_OF_WEEK_IN_MONTH- 指定された「位置合せされた曜日」を使ってLocalDateを返します。 日付は、指定された月ベースの「位置合せされた曜日」に調整されます。 位置合せした週数は、ある特定の月の第1週目がその月の最初の日で始まるようにして数えられます。 これにより、日付が最大6日間次の月に移される可能性があります。ALIGNED_DAY_OF_WEEK_IN_YEAR- 指定された「位置合せされた曜日」を使ってLocalDateを返します。 日付は、指定された年ベースの「位置合せされた曜日」に調整されます。 位置合せされた週数は、ある特定の年の第1週目がその年の最初の日で始まるようにして数えられます。 これにより、日付が最大6日間次の年に移される可能性があります。DAY_OF_MONTH- 指定された「月の日」を使ってLocalDateを返します。 その月および年は変更されません。 「月の日」がその年と月に対して無効である場合は、DateTimeExceptionがスローされます。DAY_OF_YEAR- 指定された「年の日」を使ってLocalDateを返します。 その年は変更されません。 「年の日」がその年に対して無効である場合は、DateTimeExceptionがスローされます。EPOCH_DAY- 指定されたエポック日を使ってLocalDateを返します。 これは、日付を完全に置き換えるもので、ofEpochDay(long)と同等です。ALIGNED_WEEK_OF_MONTH- 指定された「位置合せされた月の週番号」を使ってLocalDateを返します。 位置合せした週数は、ある特定の月の第1週目がその月の最初の日で始まるようにして数えられます。 この調整により、指定された週に一致するように日付が週単位で移されます。 結果には、この日付と同じ曜日が含まれます。 これにより、日付が次の月に移される可能性があります。ALIGNED_WEEK_OF_YEAR- 指定された「位置合せされた年の週番号」を使ってLocalDateを返します。 位置合せされた週数は、ある特定の年の第1週目がその年の最初の日で始まるようにして数えられます。 この調整により、指定された週に一致するように日付が週単位で移されます。 結果には、この日付と同じ曜日が含まれます。 これにより、日付が次の年に移される可能性があります。MONTH_OF_YEAR- 指定された月を使ってLocalDateを返します。 その年は変更されません。 「月の日」も、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。PROLEPTIC_MONTH- 指定された予期的月を使ってLocalDateを返します。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。YEAR_OF_ERA- 指定された紀元年を使ってLocalDateを返します。 その紀元および月は変更されません。 「月の日」も、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。YEAR- 指定された年を使ってLocalDateを返します。 その月は変更されません。 「月の日」も、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。ERA- 指定された紀元を使ってLocalDateを返します。 紀元年および月は変更されません。 「月の日」も、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。
いずれの場合も、新しい値がフィールドの値の有効範囲外にあると
DateTimeExceptionがスローされます。他のすべての
ChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、thisを引数として渡してTemporalField.adjustInto(Temporal, long)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのwith - 定義:
- インタフェース
Temporalのwith - パラメータ:
field- 結果に設定するフィールド、null以外newValue- 結果のフィールドの新しい値- 戻り値:
- 指定されたフィールドが設定された、
これに基づくLocalDate。null以外 - 例外:
DateTimeException- フィールドを設定できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
withYear
public LocalDate withYear(int year)年を変更して、このLocalDateのコピーを返します。その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
year- 結果に設定される年(MIN_YEARからMAX_YEARまで)- 戻り値:
- リクエストされた年を含む、この日付に基づいた
LocalDate。null以外 - 例外:
DateTimeException- 年の値が無効である場合
-
withMonth
public LocalDate withMonth(int month)「年の月」を変更して、このLocalDateのコピーを返します。その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
month- 結果に設定される月。1(1月)-12(12月)- 戻り値:
- リクエストされた月を含む、この日付に基づいた
LocalDate。null以外 - 例外:
DateTimeException- 月の値が無効である場合
-
withDayOfMonth
public LocalDate withDayOfMonth(int dayOfMonth)「月の日」を変更して、このLocalDateのコピーを返します。結果となる日付が無効である場合は、例外がスローされます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
dayOfMonth- 結果に設定される「月の日」。1から28-31まで- 戻り値:
- リクエストされた日を含む、この日付に基づいた
LocalDate。null以外 - 例外:
DateTimeException- 「月の日」の値が無効である場合、または「月の日」がその月-年に対して無効である場合
-
withDayOfYear
public LocalDate withDayOfYear(int dayOfYear)「年の日」を変更して、このLocalDateのコピーを返します。結果となる日付が無効である場合は、例外がスローされます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
dayOfYear- 結果に設定される「年の日」。1から365-366まで- 戻り値:
- リクエストされた日を含む、この日付に基づいた
LocalDate。null以外 - 例外:
DateTimeException- 「年の日」の値が無効である場合、または「年の日」がその年に対して無効である場合
-
plus
public LocalDate plus(TemporalAmount amountToAdd)この日付のコピーに指定された時間を追加したものを返します。これは、指定された量を加算して、この日付に基づく
LocalDateを返します。 この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのplus - 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 加算する量、nullでない- 戻り値:
- 加算が行われた、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 加算できない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plus
public LocalDate plus(long amountToAdd, TemporalUnit unit)この日付のコピーに指定された時間を追加したものを返します。これは、その単位での量を加算して、この日付に基づく
LocalDateを返します。 量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。場合によっては、量を加算すると、結果となる日付が無効になることがあります。 たとえば、1月31日に1月を加算すると、2月31日という結果になります。 このような場合、その単位は日付の解決を行います。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
フィールドが
ChronoUnitの場合は、加算はここで実装されます。 サポートされるフィールドは次のように動作します。DAYS- 指定された日数を加算してLocalDateを返します。 これはplusDays(long)と同等です。WEEKS- 指定された週数を加算してLocalDateを返します。 これはplusWeeks(long)と同等であり、週7日制を使用します。MONTHS- 指定された月数を加算してLocalDateを返します。 これはplusMonths(long)と同等です。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。YEARS- 指定された年数を加算してLocalDateを返します。 これはplusYears(long)と同等です。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。DECADES- 指定された数の10年を加算してLocalDateを返します。 これは、量を10倍にしてplusYears(long)を呼び出すことと同等です。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。CENTURIES- 指定された数の100年を加算してLocalDateを返します。 これは、量を100倍にしてplusYears(long)を呼び出すことと同等です。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。MILLENNIA- 指定された数の1000年を加算してLocalDateを返します。 これは、量を1,000倍にしてplusYears(long)を呼び出すことと同等です。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。ERAS- 指定された紀元数を加算してLocalDateを返します。 サポートされている紀元は2つのみなので、この量は1、0、または-1にする必要があります。 量が0以外である場合は、紀元年が変わらないように、その年が変更されます。 「月の日」は、新しい月および年に対して無効にならないかぎり変更されません。 その場合、「月の日」は新しい月および年に対して有効な最大値に調整されます。
他のすべての
ChronoUnitインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのplus - 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 結果に加算する単位の量、負も可unit- 加算する量の単位、nullでない- 戻り値:
- 指定された量が加算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 加算できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plusYears
public LocalDate plusYears(long yearsToAdd)指定された年数を加算した、このLocalDateのコピーを返します。このメソッドは、3つのステップで、指定された量を年フィールドに加算します。
- 入力された年数を年フィールドに加算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2008-02-29 (うるう年)に1年を加算すると、2009-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2009-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
yearsToAdd- 加算する年数。負の値の場合もある- 戻り値:
- その年数が加算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
plusMonths
public LocalDate plusMonths(long monthsToAdd)指定された月数を加算した、このLocalDateのコピーを返します。このメソッドは、3つのステップで、指定された量を月フィールドに加算します。
- 入力された月数を、月フィールドに加算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2007-03-31に1月を加算すると、2007-04-31という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-04-30が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
monthsToAdd- 加算する月数。負の値の場合もある- 戻り値:
- その月数が加算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
plusWeeks
public LocalDate plusWeeks(long weeksToAdd)指定された週数を加算した、このLocalDateのコピーを返します。このメソッドは、指定された週単位の量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31に1週間を加算すると、2009-01-07という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
weeksToAdd- 加算する週数。負の値の場合もある- 戻り値:
- その週数が加算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
plusDays
public LocalDate plusDays(long daysToAdd)指定された日数を加算した、このLocalDateのコピーを返します。このメソッドは、指定された量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31に1日を加算すると、2009-01-01という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
daysToAdd- 加算する日数。負の値の場合もある- 戻り値:
- その日数が加算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
minus
public LocalDate minus(TemporalAmount amountToSubtract)指定された量を減算した、この日付のコピーを返します。これは、指定された量を減算して、この日付に基づく
LocalDateを返します。 この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのminus - 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 減算する量、nullでない- 戻り値:
- 減算が行われた、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 減算ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minus
public LocalDate minus(long amountToSubtract, TemporalUnit unit)指定された量を減算した、この日付のコピーを返します。これは、その単位での量を減算して、この日付に基づく
LocalDateを返します。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。このメソッドは、量を符号反転した
plus(long, TemporalUnit)と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのminus - 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 結果から減算する単位の量、負も可unit- 減算する量の単位、nullでない- 戻り値:
- 指定された量が減算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 減算ができない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minusYears
public LocalDate minusYears(long yearsToSubtract)指定された年数を減算した、このLocalDateのコピーを返します。このメソッドは、3つのステップで、指定された量を年フィールドから減算します。
- 入力された年数を年フィールドから減算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2008-02-29 (うるう年)から1年を減算すると、2007-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
yearsToSubtract- 減算する年数。負の値の場合もある- 戻り値:
- その年数が減算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
minusMonths
public LocalDate minusMonths(long monthsToSubtract)指定された月数を減算した、このLocalDateのコピーを返します。このメソッドは、3つのステップで、指定された量を月フィールドから減算します。
- 入力された月数を、年の何月かを表すフィールドから減算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2007-03-31から1月を減算すると、2007-02-31という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
monthsToSubtract- 減算する月数。負の値の場合もある- 戻り値:
- その月数が減算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
minusWeeks
public LocalDate minusWeeks(long weeksToSubtract)指定された週数を減算した、このLocalDateのコピーを返します。このメソッドは、指定された週単位の量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2009-01-07から1週間を減算すると、2008-12-31という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
weeksToSubtract- 減算する週数。負の値の場合もある- 戻り値:
- その週数が減算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
minusDays
public LocalDate minusDays(long daysToSubtract)指定された日数を減算した、このLocalDateのコピーを返します。このメソッドは、指定された量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2009-01-01から1日を減算すると、2008-12-31という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
daysToSubtract- 減算する日数。負の値の場合もある- 戻り値:
- その日数が減算された、この日付に基づく
LocalDate。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
query
public <R> R query(TemporalQuery<R> query)指定された問合せを使用してこの日付を問い合わせます。これは指定された問合せ戦略オブジェクトを使用してこの日付を問い合わせます。
TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。このメソッドの結果は、
thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。- 定義:
query、インタフェース:ChronoLocalDate- 定義:
- インタフェース
TemporalAccessorのquery - 型パラメータ:
R- 結果の型- パラメータ:
query- 呼び出す問合せ、null以外- 戻り値:
- 問合せ結果、nullが返されることがある(問合せによって定義される)
- 例外:
DateTimeException- 問い合わせできない場合(問合せによって定義される)ArithmeticException- 数値のオーバーフローが発生した場合(問合せによって定義される)
-
adjustInto
指定された一時オブジェクトをこのオブジェクトと同じ日付になるように調整します。これは、日付をこれと同じになるように変更して、入力と同じ識別可能な型の一時オブジェクトを返します。
調整は、
ChronoField.EPOCH_DAYをフィールドとして渡してTemporal.with(TemporalField, long)を使用する場合と同等です。ほとんどのケースで、
Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。// these two lines are equivalent, but the second approach is recommended temporal = thisLocalDate.adjustInto(temporal); temporal = temporal.with(thisLocalDate);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
adjustInto、インタフェース:ChronoLocalDate- 定義:
- インタフェース
TemporalAdjusterのadjustInto - パラメータ:
temporal- 調整するターゲット・オブジェクト、null以外- 戻り値:
- 調整されるオブジェクト、null以外
- 例外:
DateTimeException- 調整を実行できない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
until
public long until(Temporal endExclusive, TemporalUnit unit)もう一方の日付までの時間量を指定された単位で計算します。これは、1つの
TemporalUnitを単位として、2つのLocalDateオブジェクト間の時間量を計算します。 開始点と終了点はthisと指定された日付です。 終了が開始より前である場合、結果は負になります。 このメソッドに渡されたTemporalは、from(TemporalAccessor)を使用してLocalDateに変換されます。 たとえば、2つの日付間の日数での量は、startDate.until(endDate, DAYS)を使用して計算できます。計算では、2つの日付間の完全な単位の数を表す整数を返します。 たとえば、2012-06-15と2012-08-14の間の月単位の量は、2か月には1日足りないため、1か月のみとなります。
このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つ目は
TemporalUnit.between(Temporal, Temporal)を使用することです。// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);
この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。計算は
ChronoUnitのこのメソッドに実装します。 サポートされている単位は、DAYS、WEEKS、MONTHS、YEARS、DECADES、CENTURIES、MILLENNIA、およびERASです。 その他のChronoUnit値は例外をスローします。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
ChronoLocalDateのuntil - 定義:
- インタフェース
Temporalのuntil - パラメータ:
endExclusive-LocalDateに変換される終了日(これを含まない)。null以外unit- 量を測定する単位、null以外- 戻り値:
- この日付と終了日の間の時間の量
- 例外:
DateTimeException- その量を計算できないか、終了時間をLocalDateに変換できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
until
public Period until(ChronoLocalDate endDateExclusive)この日付からもう一方の日付までの期間をPeriodとして計算します。これは、年数、月数、および日数を単位として、2つの日付の間の期間を計算します。 開始点と終了点は
thisと指定された日付です。 終了が開始より前である場合、結果は負になります。 マイナス記号は年、月、日のそれぞれで同じになります。この計算は、ISOの暦体系を使って行われます。 必要に応じて、入力された日付がISOに変換されます。
開始日は含まれますが、終了日は含まれません。 この期間を計算するには、完全な月を削除してから、残りの日数を計算し、両方が同じ符号を持つように調整します。 その後、1年12か月に基づいて、月の数が年数と月数に正規化されます。 月の最終日が月の開始日に等しいか、それよりも大きい場合、月は完全なものとみなされます。 たとえば、
2010-01-15から2011-03-18までは「1年と2か月と3日」です。このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つめは、
Period.between(LocalDate, LocalDate)を使用することです。// these two lines are equivalent period = start.until(end); period = Period.between(start, end);
この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。- 定義:
- インタフェース
ChronoLocalDateのuntil - パラメータ:
endDateExclusive- 終了日、排他的、任意の暦で可能、null以外- 戻り値:
- この日付と終了日の間の期間、null以外
-
datesUntil
順序付けられた日付のストリームを返します。 返されるストリームは、この日付の(inclusive)から開始し、1日の増分ステップでendExclusive(exclusive)に移動します。このメソッドは
datesUntil(endExclusive, Period.ofDays(1))と同等です。- パラメータ:
endExclusive- 終了日、排他的ではない- 戻り値:
LocalDate値の範囲に対するシーケンシャルなStream- 例外:
IllegalArgumentException- 終了日がこの日付より前の場合- 導入されたバージョン:
- 9
-
datesUntil
指定された増分ステップで日付の連続した順序付けされたストリームを返します。 返されるストリームは、この日付の(inclusive)からendExclusive(exclusive)に移動します。ストリームに表示されるn番目の日付は、
this.plus(step.multipliedBy(n))(ステップ乗算の結果は決してオーバーフローしません)と同じです。 たとえば、この日付が2015-01-31、終了日が2015-05-01、ステップが1ヶ月の場合、ストリームには2015-01-31、2015-02-28、2015-03-31、および2015-04-30が含まれます。- パラメータ:
endExclusive- 終了日、排他的ではないstep- ステップを表す非ゼロで非負のPeriod。- 戻り値:
LocalDate値の範囲に対するシーケンシャルなStream- 例外:
IllegalArgumentException- stepが0の場合、またはstep.getDays()とstep.toTotalMonths()の符号が反対の場合、または終了日がこの日付より前の場合はステップが肯定、終了日がこの日付より後でステップが否定の場合- 導入されたバージョン:
- 9
-
format
public String format(DateTimeFormatter formatter)指定されたフォーマッタを使用してこの日付を書式設定します。この日付はフォーマッタに渡され、文字列が生成されます。
- 定義:
format、インタフェース:ChronoLocalDate- パラメータ:
formatter- 使用するフォーマッタ、null以外- 戻り値:
- 書式設定済の日付文字列、null以外
- 例外:
DateTimeException- 出力時にエラーが発生した場合
-
atTime
public LocalDateTime atTime(LocalTime time)この日付を時間と組み合せてLocalDateTimeを作成します。これは、この日付の指定された時間から形成された
LocalDateTimeを返します。 日付と時間のすべての可能性のある組合わせが有効です。- 定義:
- インタフェース
ChronoLocalDateのatTime - パラメータ:
time- 組み合せる時間。null以外- 戻り値:
- この日付と指定された時間から形成されたローカル日付/時間、null以外
-
atTime
public LocalDateTime atTime(int hour, int minute)この日付を時間と組み合せてLocalDateTimeを作成します。これは、この日付の指定された時と分から形成された
LocalDateTimeを返します。 秒およびナノ秒のフィールドはゼロに設定されます。 個々の時間フィールドは、その有効な範囲内にする必要があります。 日付と時間のすべての可能性のある組合わせが有効です。- パラメータ:
hour- 使用する時(0-23)minute- 使用する分(0-59)- 戻り値:
- この日付と指定された時間から形成されたローカル日付/時間、null以外
- 例外:
DateTimeException- いずれかのフィールドの値が範囲外にある場合
-
atTime
public LocalDateTime atTime(int hour, int minute, int second)この日付を時間と組み合せてLocalDateTimeを作成します。これは、この日付の指定された時、分、および秒から形成された
LocalDateTimeを返します。 ナノ秒フィールドはゼロに設定されます。 個々の時間フィールドは、その有効な範囲内にする必要があります。 日付と時間のすべての可能性のある組合わせが有効です。- パラメータ:
hour- 使用する時(0-23)minute- 使用する分(0-59)second- 表される秒(0-59)- 戻り値:
- この日付と指定された時間から形成されたローカル日付/時間、null以外
- 例外:
DateTimeException- いずれかのフィールドの値が範囲外にある場合
-
atTime
public LocalDateTime atTime(int hour, int minute, int second, int nanoOfSecond)この日付を時間と組み合せてLocalDateTimeを作成します。これは、この日付の指定された時、分、秒、およびナノ秒から形成された
LocalDateTimeを返します。 個々の時間フィールドは、その有効な範囲内にする必要があります。 日付と時間のすべての可能性のある組合わせが有効です。- パラメータ:
hour- 使用する時(0-23)minute- 使用する分(0-59)second- 表される秒(0-59)nanoOfSecond- 表現する「1秒のうちのナノ秒」、0から999,999,999- 戻り値:
- この日付と指定された時間から形成されたローカル日付/時間、null以外
- 例外:
DateTimeException- いずれかのフィールドの値が範囲外にある場合
-
atTime
public OffsetDateTime atTime(OffsetTime time)この日付をオフセット時間と組み合せてOffsetDateTimeを作成します。これは、この日付の指定された時間から形成された
OffsetDateTimeを返します。 日付と時間のすべての可能性のある組合わせが有効です。- パラメータ:
time- 組み合せる時間。null以外- 戻り値:
- この日付と指定された時間から形成されたオフセット日付/時間。null以外
-
atStartOfDay
public LocalDateTime atStartOfDay()この日付を深夜零時と組み合せて、この日付の開始時のLocalDateTimeを作成します。これは、この日付の深夜零時(00:00)から形成された、この日付の開始時の
LocalDateTimeを返します。- 戻り値:
- この日付の開始時の深夜零時のローカル日付/時間。null以外
-
atStartOfDay
public ZonedDateTime atStartOfDay(ZoneId zone)タイムゾーンのルールに従って、この日付のもっとも早い有効な時間からゾーン付きの日付/時間を返します。サマー・タイムなどのタイムゾーン・ルールは、すべてのローカル日付/時間が指定されたゾーンに対して有効であるとはかぎらないことを意味しているので、ローカル日付/時間が深夜零時にならないことがあります。
ほとんどの場合に、ローカル日付/時間の有効なオフセットは1つだけです。 重複が発生した場合は、有効なオフセットが2つ存在するため、その日付で最初に現れた深夜零時に対応する、早い方のオフセットが使用されます。 ギャップが発生した場合、ゾーン付きの日付/時間はそのギャップ直後のインスタントを表します。
ゾーンIDが
ZoneOffsetである場合、結果には常に深夜零時の時間が含まれます。指定されたタイムゾーンの特定の時間に変換するには、
atTime(LocalTime)を呼び出し、その後にLocalDateTime.atZone(ZoneId)を呼び出します。- パラメータ:
zone- 使用するゾーンID、null以外- 戻り値:
- この日付と、そのゾーンでもっとも早い有効な時間から形成されたゾーン付きの日付/時間。null以外
-
toEpochSecond
public long toEpochSecond(LocalTime time, ZoneOffset offset)このLocalDateを1970-01-01T00:00:00Zの時代からの秒数に変換します。これは、1970-01-01T00:00:00Zからの経過秒数である第2の値を計算するために、このローカル日付と指定された時間およびオフセットを組み合わせます。 エポックより後の時系列上のインスタントは正で、それより前は負になります。
- パラメータ:
time- ローカル時間。null以外offset- ゾーンオフセット。null以外- 戻り値:
- 1970-01-01T00:00:00Zの時代からの秒数。
- 導入されたバージョン:
- 9
-
compareTo
public int compareTo(ChronoLocalDate other)この日付を別の日付と比較します。この比較は主として日付(もっとも早いものからもっとも遅いものまで)に基づいています。
Comparableに定義されているとおりに、「equalsと一致」しています。比較対象のすべての日付が
LocalDateのインスタンスである場合、比較は完全にその日付に基づいて行われます。 比較対象の日付の中に異なる暦のものが含まれている場合、その暦も考慮されます(ChronoLocalDate.compareTo(java.time.chrono.ChronoLocalDate)を参照)。- 定義:
compareTo、インタフェース:ChronoLocalDate- 定義:
- インタフェース
Comparable<ChronoLocalDate>のcompareTo - パラメータ:
other- 比較する他方の日付、null以外- 戻り値:
- コンパレータ値、小さい場合は負、大きい場合は正
-
isAfter
public boolean isAfter(ChronoLocalDate other)この日付が、指定された日付より後にあるかどうかをチェックします。これは、この日付がローカル時系列上のもう一方の日付より後の時点を表しているかどうかを確認します。
LocalDate a = LocalDate.of(2012, 6, 30); LocalDate b = LocalDate.of(2012, 7, 1); a.isAfter(b) == false a.isAfter(a) == false b.isAfter(a) == true
このメソッドは、ローカル時系列上の2つの日付の位置のみを考慮します。 暦(暦体系)は考慮に入れません。 これは
compareTo(ChronoLocalDate)での比較とは異なりますが、ChronoLocalDate.timeLineOrder()とは同じ方法です。- 定義:
isAfter、インタフェース:ChronoLocalDate- パラメータ:
other- 比較する他方の日付、null以外- 戻り値:
- この日付が指定された日付より後にある場合はtrue
-
isBefore
public boolean isBefore(ChronoLocalDate other)この日付が、指定された日付より前にあるかどうかをチェックします。これは、この日付がローカル時系列上のもう一方の日付より前の時点を表しているかどうかを確認します。
LocalDate a = LocalDate.of(2012, 6, 30); LocalDate b = LocalDate.of(2012, 7, 1); a.isBefore(b) == true a.isBefore(a) == false b.isBefore(a) == false
このメソッドは、ローカル時系列上の2つの日付の位置のみを考慮します。 暦(暦体系)は考慮に入れません。 これは
compareTo(ChronoLocalDate)での比較とは異なりますが、ChronoLocalDate.timeLineOrder()とは同じ方法です。- 定義:
isBefore、インタフェース:ChronoLocalDate- パラメータ:
other- 比較する他方の日付、null以外- 戻り値:
- この日付が指定された日付より前にある場合はtrue
-
isEqual
public boolean isEqual(ChronoLocalDate other)この日付が、指定された日付と等しいかどうかをチェックします。これは、この日付がローカル時系列上のもう一方の日付と同じ時点を表しているかどうかを確認します。
LocalDate a = LocalDate.of(2012, 6, 30); LocalDate b = LocalDate.of(2012, 7, 1); a.isEqual(b) == false a.isEqual(a) == true b.isEqual(a) == false
このメソッドは、ローカル時系列上の2つの日付の位置のみを考慮します。 暦(暦体系)は考慮に入れません。 これは
compareTo(ChronoLocalDate)での比較とは異なりますが、ChronoLocalDate.timeLineOrder()とは同じ方法です。- 定義:
isEqual、インタフェース:ChronoLocalDate- パラメータ:
other- 比較する他方の日付、null以外- 戻り値:
- この日付が指定された日付と等しい場合はtrue
-
equals
public boolean equals(Object obj)この日付がもう一方の日付と等しいかどうかを確認します。この
LocalDateをもう一方と比較して、その日付が同じであることを確認します。LocalDate型のオブジェクトのみが比較され、それ以外の型はfalseを返します。 2つの異なる暦の日付など、2つのTemporalAccessorインスタンスの日付を比較するには、コンパレータとしてChronoField.EPOCH_DAYを使用します。- 定義:
- インタフェース
ChronoLocalDateのequals - オーバーライド:
equals、クラス:Object- パラメータ:
obj- チェックするオブジェクト、nullはfalseを返す- 戻り値:
- これが他方の日付と等しい場合はtrue
- 関連項目:
Object.hashCode()、HashMap
-
hashCode
public int hashCode()この日付のハッシュ・コード。- 定義:
- インタフェース
ChronoLocalDateのhashCode - オーバーライド:
hashCode、クラス:Object- 戻り値:
- 適切なハッシュ・コード
- 関連項目:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
toString
public String toString()この日付をStringとして出力します(2007-12-03など)。この出力は、ISO-8601形式の
uuuu-MM-ddになります。- 定義:
- インタフェース
ChronoLocalDateのtoString - オーバーライド:
toString、クラス:Object- 戻り値:
- この日付の文字列表現。null以外
-