モジュール java.base
パッケージ java.time

クラスLocalDate

  • すべての実装されたインタフェース:
    Serializable, Comparable<ChronoLocalDate>, ChronoLocalDate, Temporal, TemporalAccessor, TemporalAdjuster

    public final class LocalDate
    extends Object
    implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable
    ISO-8601暦体系のタイムゾーンのない日付、2007-12-03など。

    LocalDateは、日付(年-月-日として表示されることが多い)を表す不変の日付/時間オブジェクトです。 他の日付フィールド(「年の日」、曜日、「年の週番号」など)にもアクセスできます。 たとえば、「2007年10月2日」という値をLocalDateに格納できます。

    このクラスでは、時間またはタイムゾーンを格納したり表現したりしません。 むしろこれは、誕生日に使用されるような日付に関する記述です。 オフセットやタイムゾーンなどの追加情報がなければ、時系列上にインスタントを表現することはできません。

    ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。 今日作成されているほとんどのアプリケーションには、ISO-8601のルールが完全に適しています。 ただし、歴史的な日付を使用し、それらが正確であることを必要とするアプリケーションには、ISO-8601の方法が適さないことがわかります。

    これは値ベースのクラスです。LocalDateのインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。 比較する場合は、equalsメソッドを使用することをお薦めします。

    実装要件:
    このクラスは不変でスレッドセーフです。
    導入されたバージョン:
    1.8
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static LocalDate EPOCH
      エポック年LocalDate、'1970-01-01'。
      static LocalDate MAX
      サポートされている最大のLocalDateである「+999999999-12-31」。
      static LocalDate MIN
      サポートされている最小のLocalDateである「-999999999-01-01」。
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Temporal adjustInto​(Temporal temporal)
      指定された一時オブジェクトをこのオブジェクトと同じ日付になるように調整します。
      LocalDateTime atStartOfDay()
      この日付を深夜零時と組み合せて、この日付の開始時のLocalDateTimeを作成します。
      ZonedDateTime atStartOfDay​(ZoneId zone)
      タイムゾーンのルールに従って、この日付のもっとも早い有効な時間からゾーン付きの日付/時間を返します。
      LocalDateTime atTime​(int hour, int minute)
      この日付を時間と組み合せてLocalDateTimeを作成します。
      LocalDateTime atTime​(int hour, int minute, int second)
      この日付を時間と組み合せてLocalDateTimeを作成します。
      LocalDateTime atTime​(int hour, int minute, int second, int nanoOfSecond)
      この日付を時間と組み合せてLocalDateTimeを作成します。
      LocalDateTime atTime​(LocalTime time)
      この日付を時間と組み合せてLocalDateTimeを作成します。
      OffsetDateTime atTime​(OffsetTime time)
      この日付をオフセット時間と組み合せてOffsetDateTimeを作成します。
      int compareTo​(ChronoLocalDate other)
      この日付を別の日付と比較します。
      Stream<LocalDate> datesUntil​(LocalDate endExclusive)
      順序付けられた日付のストリームを返します。
      Stream<LocalDate> datesUntil​(LocalDate endExclusive, Period step)
      指定された増分ステップで日付の連続した順序付けされたストリームを返します。
      boolean equals​(Object obj)
      この日付がもう一方の日付と等しいかどうかを確認します。
      String format​(DateTimeFormatter formatter)
      指定されたフォーマッタを使用してこの日付を書式設定します。
      static LocalDate from​(TemporalAccessor temporal)
      時間的オブジェクトからLocalDateのインスタンスを取得します。
      int get​(TemporalField field)
      指定されたフィールドの値をこの日付からintとして取得します。
      IsoChronology getChronology()
      ISO暦体系であるこの日付の暦を取得します。
      int getDayOfMonth()
      「月の日」フィールドを取得します。
      DayOfWeek getDayOfWeek()
      列挙型DayOfWeekである曜日フィールドを取得します。
      int getDayOfYear()
      「年の日」フィールドを取得します。
      IsoEra getEra()
      この日付で使用可能な紀元を取得します。
      long getLong​(TemporalField field)
      指定されたフィールドの値をこの日付からlongとして取得します。
      Month getMonth()
      列挙型Monthを使用して、月フィールドを取得します。
      int getMonthValue()
      月フィールドを取得します(1-12)。
      int getYear()
      年フィールドを取得します。
      int hashCode()
      この日付のハッシュ・コード。
      boolean isAfter​(ChronoLocalDate other)
      この日付が、指定された日付より後にあるかどうかをチェックします。
      boolean isBefore​(ChronoLocalDate other)
      この日付が、指定された日付より前にあるかどうかをチェックします。
      boolean isEqual​(ChronoLocalDate other)
      この日付が、指定された日付と等しいかどうかをチェックします。
      boolean isLeapYear()
      ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。
      boolean isSupported​(TemporalField field)
      指定されたフィールドがサポートされているかどうかをチェックします。
      boolean isSupported​(TemporalUnit unit)
      指定された単位がサポートされているかどうかをチェックします。
      int lengthOfMonth()
      この日付によって表される月の長さを返します。
      int lengthOfYear()
      この日付によって表される年の長さを返します。
      LocalDate minus​(long amountToSubtract, TemporalUnit unit)
      指定された量を減算した、この日付のコピーを返します。
      LocalDate minus​(TemporalAmount amountToSubtract)
      指定された量を減算した、この日付のコピーを返します。
      LocalDate minusDays​(long daysToSubtract)
      指定された日数を減算した、このLocalDateのコピーを返します。
      LocalDate minusMonths​(long monthsToSubtract)
      指定された月数を減算した、このLocalDateのコピーを返します。
      LocalDate minusWeeks​(long weeksToSubtract)
      指定された週数を減算した、このLocalDateのコピーを返します。
      LocalDate minusYears​(long yearsToSubtract)
      指定された年数を減算した、このLocalDateのコピーを返します。
      static LocalDate now()
      デフォルトのタイムゾーンのシステム・クロックから現在の日付を取得します。
      static LocalDate now​(Clock clock)
      指定されたクロックから現在の日付を取得します。
      static LocalDate now​(ZoneId zone)
      指定されたタイムゾーンのシステム・クロックから現在の日付を取得します。
      static LocalDate of​(int year, int month, int dayOfMonth)
      年、月、および日からLocalDateのインスタンスを取得します。
      static LocalDate of​(int year, Month month, int dayOfMonth)
      年、月、および日からLocalDateのインスタンスを取得します。
      static LocalDate ofEpochDay​(long epochDay)
      エポック日数からLocalDateのインスタンスを取得します。
      static LocalDate ofInstant​(Instant instant, ZoneId zone)
      InstantとゾーンIDからLocalDateのインスタンスを取得します。
      static LocalDate ofYearDay​(int year, int dayOfYear)
      年および「年の日」からLocalDateのインスタンスを取得します。
      static LocalDate parse​(CharSequence text)
      2007-12-03などのテキスト文字列からLocalDateのインスタンスを取得します。
      static LocalDate parse​(CharSequence text, DateTimeFormatter formatter)
      特定のフォーマッタを使用して、テキスト文字列からLocalDateのインスタンスを取得します。
      LocalDate plus​(long amountToAdd, TemporalUnit unit)
      指定された量を加算した、この日付のコピーを返します。
      LocalDate plus​(TemporalAmount amountToAdd)
      指定された量を加算した、この日付のコピーを返します。
      LocalDate plusDays​(long daysToAdd)
      指定された日数を加算した、このLocalDateのコピーを返します。
      LocalDate plusMonths​(long monthsToAdd)
      指定された月数を加算した、このLocalDateのコピーを返します。
      LocalDate plusWeeks​(long weeksToAdd)
      指定された週数を加算した、このLocalDateのコピーを返します。
      LocalDate plusYears​(long yearsToAdd)
      指定された年数を加算した、このLocalDateのコピーを返します。
      <R> R query​(TemporalQuery<R> query)
      指定された問合せを使用してこの日付を問い合わせます。
      ValueRange range​(TemporalField field)
      指定されたフィールドの有効な値の範囲を取得します。
      long toEpochSecond​(LocalTime time, ZoneOffset offset)
      このLocalDateを1970-01-01T00:00:00Zの時代からの秒数に変換します。
      String toString()
      この日付をStringとして出力します(2007-12-03など)。
      Period until​(ChronoLocalDate endDateExclusive)
      この日付からもう一方の日付までの期間をPeriodとして計算します。
      long until​(Temporal endExclusive, TemporalUnit unit)
      もう一方の日付までの時間量を指定された単位で計算します。
      LocalDate with​(TemporalAdjuster adjuster)
      この日付の調整済のコピーを返します。
      LocalDate with​(TemporalField field, long newValue)
      指定されたフィールドを新しい値に設定して、この日付のコピーを返します。
      LocalDate withDayOfMonth​(int dayOfMonth)
      「月の日」を変更して、このLocalDateのコピーを返します。
      LocalDate withDayOfYear​(int dayOfYear)
      「年の日」を変更して、このLocalDateのコピーを返します。
      LocalDate withMonth​(int month)
      「年の月」を変更して、このLocalDateのコピーを返します。
      LocalDate withYear​(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

        public static LocalDate now​(ZoneId zone)
        指定されたタイムゾーンのシステム・クロックから現在の日付を取得します。

        これはsystem clockを問い合わせて、現在の日付を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。

        このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。

        パラメータ:
        zone - 使用するゾーンID、null以外
        戻り値:
        システムクロックを使用した現在の日付、null以外
      • now

        public static LocalDate now​(Clock clock)
        指定されたクロックから現在の日付を取得します。

        これは指定されたクロックを問い合わせ、現在の日付(今日)を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックはdependency injectionを使用して導入できます。

        パラメータ:
        clock - 使用するクロック、null以外
        戻り値:
        現在の日付、null以外
      • of

        public static LocalDate of​(int year,
                                   Month month,
                                   int dayOfMonth)
        年、月、および日から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

        public static LocalDate ofInstant​(Instant instant,
                                          ZoneId zone)
        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の場合、rangeget、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。

        • DAY_OF_WEEK
        • ALIGNED_DAY_OF_WEEK_IN_MONTH
        • ALIGNED_DAY_OF_WEEK_IN_YEAR
        • DAY_OF_MONTH
        • DAY_OF_YEAR
        • EPOCH_DAY
        • ALIGNED_WEEK_OF_MONTH
        • ALIGNED_WEEK_OF_YEAR
        • MONTH_OF_YEAR
        • PROLEPTIC_MONTH
        • YEAR_OF_ERA
        • YEAR
        • ERA
        他のすべてのChronoFieldインスタンスはfalseを返します。

        フィールドがChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。

        定義:
        インタフェースChronoLocalDateisSupported
        定義:
        インタフェースTemporalAccessorisSupported
        パラメータ:
        field - チェックするフィールド、nullはfalseを返す
        戻り値:
        フィールドがこの日付でサポートされている場合はtrue、そうでない場合はfalse
      • isSupported

        public boolean isSupported​(TemporalUnit unit)
        指定された単位がサポートされているかどうかをチェックします。

        これは、指定された単位をこの日付に加算または減算できるかどうかをチェックします。 falseの場合、plus(long, TemporalUnit)およびminusメソッドの呼び出しは、例外をスローします。

        単位がChronoUnitの場合、問合せはここで実装されます。 サポートされる単位は次のとおりです。

        • DAYS
        • WEEKS
        • MONTHS
        • YEARS
        • DECADES
        • CENTURIES
        • MILLENNIA
        • ERAS
        他のすべてのChronoUnitインスタンスはfalseを返します。

        単位がChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.isSupportedBy(Temporal)を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。

        定義:
        インタフェースChronoLocalDateisSupported
        定義:
        インタフェースTemporalisSupported
        パラメータ:
        unit - チェックする単位、nullはfalseを返す
        戻り値:
        単位を加算/減算できる場合はtrue、できない場合はfalse
      • range

        public ValueRange range​(TemporalField field)
        指定されたフィールドの有効な値の範囲を取得します。

        範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この日付は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。

        定義:
        インタフェースTemporalAccessorrange
        パラメータ:
        field - 範囲を問い合わせるフィールド、null以外
        戻り値:
        フィールドの有効値の範囲。null以外
        例外:
        DateTimeException - フィールドの範囲を取得できない場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合
      • get

        public int get​(TemporalField field)
        指定されたフィールドの値をこの日付からintとして取得します。

        これは、指定したフィールドの値についてこの日付に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 EPOCH_DAYPROLEPTIC_MONTHを除いて、intに収まりきってUnsupportedTemporalTypeExceptionを投げるのを除いて、supported fieldsはこの日付に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。

        定義:
        インタフェースTemporalAccessorget
        パラメータ:
        field - 取得するフィールド、null以外
        戻り値:
        フィールドの値
        例外:
        DateTimeException - フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合、または値の範囲がintを超えている場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • getLong

        public long getLong​(TemporalField field)
        指定されたフィールドの値をこの日付からlongとして取得します。

        これは、指定したフィールドの値についてこの日付に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされているフィールドは、この日付に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。

        定義:
        インタフェースTemporalAccessorgetLong
        パラメータ:
        field - 取得するフィールド、null以外
        戻り値:
        フィールドの値
        例外:
        DateTimeException - フィールドの値を取得できない場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • getChronology

        public IsoChronology getChronology()
        ISO暦体系であるこの日付の暦を取得します。

        Chronologyは使用中の暦体系を表します。 ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。

        定義:
        インタフェースChronoLocalDategetChronology
        戻り値:
        ISOの暦。null以外
      • getEra

        public IsoEra getEra()
        この日付で使用可能な紀元を取得します。

        公式のISO-8601標準では紀元を定義していませんが、IsoChronologyでは定義しています。 それは、1年以降の「CE」と0年以前の「BCE」の2つの紀元を定義しています。 ユリウスとグレゴリオの切換え前の日付は歴史に沿っていないため、「BCE」と「CE」の切り換えも一般的に使用される紀元(「BC」と「AD」の使用を指すことが多い)と揃っていません。

        このメソッドは主としてChronoLocalDateの規定(和暦をサポートする必要がある)を満たすために存在しているため、このクラスのユーザーは通常それを無視するようにしてください。

        定義:
        インタフェースChronoLocalDategetEra
        戻り値:
        この日に適用される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規格には正確です。

        定義:
        インタフェースChronoLocalDateisLeapYear
        戻り値:
        年がうるう年の場合はtrue、それ以外の場合はfalse
      • lengthOfMonth

        public int lengthOfMonth()
        この日付によって表される月の長さを返します。

        これは月の長さを日数で返します。 たとえば、1月の日付は31を返します。

        定義:
        インタフェースChronoLocalDatelengthOfMonth
        戻り値:
        日数での月の長さ
      • lengthOfYear

        public int lengthOfYear()
        この日付によって表される年の長さを返します。

        これは、その年の長さを日数(365または366)で返します。

        定義:
        インタフェースChronoLocalDatelengthOfYear
        戻り値:
        その年がうるう年の場合は366、それ以外の場合は365
      • with

        public LocalDate with​(TemporalAdjuster adjuster)
        この日付の調整済のコピーを返します。

        これは、日付を調整して、この日付に基づくLocalDateを返します。 調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。 どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。

        単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。 複雑なアジャスタは、日付を月の最後の日に設定するなどです。

        一般的な調整の選択は、TemporalAdjustersで指定します。 これらには、月の最後の日や次の水曜日を見つけることが含まれます。 主要な日付/時間クラス(MonthMonthDayなど)も、TemporalAdjusterインタフェースを実装します。 アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。

        たとえば、このコードでは7月の最後の日の日付を返します。

          import static java.time.Month.*;
          import static java.time.temporal.TemporalAdjusters.*;
        
          result = localDate.with(JULY).with(lastDayOfMonth());
         

        このメソッドの結果は、指定されたアジャスタでthisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDatewith
        定義:
        インタフェースTemporalwith
        パラメータ:
        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)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDatewith
        定義:
        インタフェースTemporalwith
        パラメータ:
        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)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDateplus
        定義:
        インタフェースTemporalplus
        パラメータ:
        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)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDateplus
        定義:
        インタフェースTemporalplus
        パラメータ:
        amountToAdd - 結果に加算する単位の量、負も可
        unit - 加算する量の単位、nullでない
        戻り値:
        指定された量が加算された、この日付に基づくLocalDate。null以外
        例外:
        DateTimeException - 加算できない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusYears

        public LocalDate plusYears​(long yearsToAdd)
        指定された年数を加算した、このLocalDateのコピーを返します。

        このメソッドは、3つの手順で、指定された量を年フィールドに加算します。

        1. 入力された年数を年フィールドに加算します
        2. 結果となる日付が無効になるかどうかをチェックします
        3. 必要に応じて、「月の日」を最後の有効な日に調整します

        たとえば、2008-02-29 (うるう年)に1年を加算すると、2009-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2009-02-28が選択されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        yearsToAdd - 加算する年数。負の値の場合もある
        戻り値:
        その年数が加算された、この日付に基づくLocalDate。null以外
        例外:
        DateTimeException - 結果がサポートされている日付範囲を超える場合
      • plusMonths

        public LocalDate plusMonths​(long monthsToAdd)
        指定された月数を加算した、このLocalDateのコピーを返します。

        このメソッドは、3つの手順で、指定された量を月フィールドに加算します。

        1. 入力された月数を、月フィールドに加算します
        2. 結果となる日付が無効になるかどうかをチェックします
        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)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDateminus
        定義:
        インタフェースTemporalminus
        パラメータ:
        amountToSubtract - 減算する量、nullでない
        戻り値:
        減算が行われた、この日付に基づくLocalDate。null以外
        例外:
        DateTimeException - 減算ができない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minus

        public LocalDate minus​(long amountToSubtract,
                               TemporalUnit unit)
        指定された量を減算した、この日付のコピーを返します。

        これは、その単位での量を減算して、この日付に基づくLocalDateを返します。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。

        このメソッドは、量を符号反転したplus(long, TemporalUnit)と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDateminus
        定義:
        インタフェースTemporalminus
        パラメータ:
        amountToSubtract - 結果から減算する単位の量、負も可
        unit - 減算する量の単位、nullでない
        戻り値:
        指定された量が減算された、この日付に基づくLocalDate。null以外
        例外:
        DateTimeException - 減算ができない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusYears

        public LocalDate minusYears​(long yearsToSubtract)
        指定された年数を減算した、このLocalDateのコピーを返します。

        このメソッドは、3つの手順で、指定された量を年フィールドから減算します。

        1. 入力された年数を年フィールドから減算します
        2. 結果となる日付が無効になるかどうかをチェックします
        3. 必要に応じて、「月の日」を最後の有効な日に調整します

        たとえば、2008-02-29 (うるう年)から1年を減算すると、2007-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-02-28が選択されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        yearsToSubtract - 減算する年数。負の値の場合もある
        戻り値:
        その年数が減算された、この日付に基づくLocalDate。null以外
        例外:
        DateTimeException - 結果がサポートされている日付範囲を超える場合
      • minusMonths

        public LocalDate minusMonths​(long monthsToSubtract)
        指定された月数を減算した、このLocalDateのコピーを返します。

        このメソッドは、3つの手順で、指定された量を月フィールドから減算します。

        1. 入力された月数を、年の何月かを表すフィールドから減算します
        2. 結果となる日付が無効になるかどうかをチェックします
        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
        定義:
        インタフェースTemporalAccessorquery
        型パラメータ:
        R - 結果の型
        パラメータ:
        query - 呼び出す問合せ、null以外
        戻り値:
        問合せ結果、nullが返されることがある(問合せによって定義される)
        例外:
        DateTimeException - 問い合わせできない場合(問合せによって定義される)
        ArithmeticException - 数値のオーバーフローが発生した場合(問合せによって定義される)
      • adjustInto

        public Temporal adjustInto​(Temporal temporal)
        指定された一時オブジェクトをこのオブジェクトと同じ日付になるように調整します。

        これは、日付をこれと同じになるように変更して、入力と同じ識別可能な型の一時オブジェクトを返します。

        調整は、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
        定義:
        インタフェースTemporalAdjusteradjustInto
        パラメータ:
        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のこのメソッドに実装します。 サポートされている単位は、DAYSWEEKSMONTHSYEARSDECADESCENTURIESMILLENNIA、およびERASです。 その他のChronoUnit値は例外をスローします。

        単位がChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースChronoLocalDateuntil
        定義:
        インタフェースTemporaluntil
        パラメータ:
        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);
         
        この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。

        定義:
        インタフェースChronoLocalDateuntil
        パラメータ:
        endDateExclusive - 終了日、排他的、任意の暦で可能、null以外
        戻り値:
        この日付と終了日の間の期間、null以外
      • datesUntil

        public Stream<LocalDate> datesUntil​(LocalDate endExclusive)
        順序付けられた日付のストリームを返します。 返されるストリームは、この日付の(inclusive)から開始し、1日の増分ステップでendExclusive (exclusive)に移動します。

        このメソッドはdatesUntil(endExclusive, Period.ofDays(1))と同等です。

        パラメータ:
        endExclusive - 終了日、排他的ではない
        戻り値:
        LocalDate値の範囲に対するシーケンシャルなStream
        例外:
        IllegalArgumentException - 終了日がこの日付より前の場合
        導入されたバージョン:
        9
      • datesUntil

        public Stream<LocalDate> datesUntil​(LocalDate endExclusive,
                                            Period step)
        指定された増分ステップで日付の連続した順序付けされたストリームを返します。 返されるストリームは、この日付の(inclusive)からendExclusive (exclusive)に移動します。

        ストリームに表示されるn番目の日付は、this.plus(step.multipliedBy(n)) (ステップ乗算の結果は決してオーバーフローしません)と同じです。 たとえば、この日付が2015-01-31、終了日が2015-05-01、ステップが1ヶ月の場合、ストリームには2015-01-312015-02-282015-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を返します。 日付と時間のすべての可能性のある組合わせが有効です。

        定義:
        インタフェースChronoLocalDateatTime
        パラメータ:
        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を使用します。

        定義:
        インタフェースChronoLocalDateequals
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - チェックするオブジェクト、nullはfalseを返す
        戻り値:
        これが他方の日付と等しい場合はtrue
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        この日付をStringとして出力します(2007-12-03など)。

        この出力は、ISO-8601形式のuuuu-MM-ddになります。

        定義:
        インタフェースChronoLocalDatetoString
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        この日付の文字列表現。null以外