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

クラスOffsetDateTime

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

    public final class OffsetDateTime
    extends Object
    implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
    ISO-8601暦体系におけるUTC/グリニッジからのオフセット付きの日時(2007-12-03T10:15:30+01:00など)。

    OffsetDateTimeは、オフセットを使った日付/時間の不変の表現です。 このクラスでは、UTC/グリニッジからのオフセットの他に、すべての日付と時間のフィールドをナノ秒の精度まで格納します。 たとえば、値"2007年10月2日、13:45:30.123456789 +02:00"はOffsetDateTimeに格納できます。

    OffsetDateTimeZonedDateTime、およびInstantはすべて、時系列上のインスタントをナノ秒の精度まで格納します。 Instantはもっとも単純で、単にインスタントを表します。 OffsetDateTimeは、UTC/グリニッジからのオフセットをインスタントに加算して、ローカル日付/時間を取得できるようにします。 ZonedDateTimeは完全なタイムゾーン・ルールを追加します。

    ZonedDateTimeまたはInstantはより単純なアプリケーションのデータのモデル化に使用するよう意図されています。 このクラスは、日付/時間の概念をより詳細にモデル化する場合や、データベースとの通信またはネットワーク・プロトコルでの通信を行う場合に使用できます。

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

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

      フィールド 
      修飾子と型 フィールド 説明
      static OffsetDateTime MAX
      サポートされている最大のOffsetDateTimeである「+999999999-12-31T23:59:59.999999999-18:00」。
      static OffsetDateTime MIN
      サポートされている最小のOffsetDateTimeである「-999999999-01-01T00:00:00+18:00」。
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Temporal adjustInto​(Temporal temporal)
      指定された時間的オブジェクトを、このオブジェクトと同じオフセット、日付、および時間を持つように調整します。
      ZonedDateTime atZoneSameInstant​(ZoneId zone)
      結果に同じインスタントが含まれるようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTimeを作成します。
      ZonedDateTime atZoneSimilarLocal​(ZoneId zone)
      同じローカルの日付と時間を保持するようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTimeを作成します。
      int compareTo​(OffsetDateTime other)
      この日付/時間を別の日付/時間と比較します。
      boolean equals​(Object obj)
      この日付/時間が別の日付/時間と等しいかどうかをチェックします。
      String format​(DateTimeFormatter formatter)
      指定されたフォーマッタを使用してこの日付/時間を書式設定します。
      static OffsetDateTime from​(TemporalAccessor temporal)
      時間的オブジェクトからOffsetDateTimeのインスタンスを取得します。
      int get​(TemporalField field)
      指定されたフィールドの値をこの日付/時間からintとして取得します。
      int getDayOfMonth()
      「月の日」フィールドを取得します。
      DayOfWeek getDayOfWeek()
      列挙型DayOfWeekである曜日フィールドを取得します。
      int getDayOfYear()
      「年の日」フィールドを取得します。
      int getHour()
      時フィールドを取得します。
      long getLong​(TemporalField field)
      指定されたフィールドの値をこの日付/時間からlongとして取得します。
      int getMinute()
      分フィールドを取得します。
      Month getMonth()
      列挙型Monthを使用して、月フィールドを取得します。
      int getMonthValue()
      月フィールドを取得します(1-12)。
      int getNano()
      ナノ秒フィールドを取得します。
      ZoneOffset getOffset()
      「+01:00」などのゾーン・オフセットを取得します。
      int getSecond()
      秒フィールドを取得します。
      int getYear()
      年フィールドを取得します。
      int hashCode()
      この日付/時間のハッシュ・コード。
      boolean isAfter​(OffsetDateTime other)
      この日付/時間のインスタントが、指定された日付/時間のインスタントより後であるかどうかをチェックします。
      boolean isBefore​(OffsetDateTime other)
      この日付/時間のインスタントが、指定された日付/時間のインスタントより前であるかどうかをチェックします。
      boolean isEqual​(OffsetDateTime other)
      この日付/時間のインスタントが、指定された日付/時間のインスタントと等しいかどうかをチェックします。
      boolean isSupported​(TemporalField field)
      指定されたフィールドがサポートされているかどうかをチェックします。
      boolean isSupported​(TemporalUnit unit)
      指定された単位がサポートされているかどうかをチェックします。
      OffsetDateTime minus​(long amountToSubtract, TemporalUnit unit)
      指定された量を減算した、この日付/時間のコピーを返します。
      OffsetDateTime minus​(TemporalAmount amountToSubtract)
      指定された量を減算した、この日付/時間のコピーを返します。
      OffsetDateTime minusDays​(long days)
      指定された日数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusHours​(long hours)
      指定された時間数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusMinutes​(long minutes)
      指定された分数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusMonths​(long months)
      指定された月数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusNanos​(long nanos)
      指定されたナノ秒数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusSeconds​(long seconds)
      指定された秒数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusWeeks​(long weeks)
      指定された週数を減算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime minusYears​(long years)
      指定された年数を減算して、このOffsetDateTimeのコピーを返します。
      static OffsetDateTime now()
      デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。
      static OffsetDateTime now​(Clock clock)
      指定されたクロックから現在の日付/時間を取得します。
      static OffsetDateTime now​(ZoneId zone)
      指定されたタイムゾーンのシステム・クロックから現在の日付/時間を取得します。
      static OffsetDateTime of​(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
      年、月、日、時、分、秒、ナノ秒、およびオフセットからOffsetDateTimeのインスタンスを取得します。
      static OffsetDateTime of​(LocalDate date, LocalTime time, ZoneOffset offset)
      日付、時間、およびオフセットからOffsetDateTimeのインスタンスを取得します。
      static OffsetDateTime of​(LocalDateTime dateTime, ZoneOffset offset)
      日付/時間およびオフセットからOffsetDateTimeのインスタンスを取得します。
      static OffsetDateTime ofInstant​(Instant instant, ZoneId zone)
      InstantおよびゾーンIDからOffsetDateTimeのインスタンスを取得します。
      static OffsetDateTime parse​(CharSequence text)
      2007-12-03T10:15:30+01:00などのテキスト文字列からOffsetDateTimeのインスタンスを取得します。
      static OffsetDateTime parse​(CharSequence text, DateTimeFormatter formatter)
      特定のフォーマッタを使用して、テキスト文字列からOffsetDateTimeのインスタンスを取得します。
      OffsetDateTime plus​(long amountToAdd, TemporalUnit unit)
      指定された量を加算した、この日付/時間のコピーを返します。
      OffsetDateTime plus​(TemporalAmount amountToAdd)
      指定された量を加算した、この日付/時間のコピーを返します。
      OffsetDateTime plusDays​(long days)
      指定された日数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusHours​(long hours)
      指定された時間数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusMinutes​(long minutes)
      指定された分数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusMonths​(long months)
      指定された月数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusNanos​(long nanos)
      指定されたナノ秒数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusSeconds​(long seconds)
      指定された秒数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusWeeks​(long weeks)
      指定された週数を加算して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime plusYears​(long years)
      指定された年数を加算して、このOffsetDateTimeのコピーを返します。
      <R> R query​(TemporalQuery<R> query)
      指定された問合せを使用してこの日付/時間を問い合わせます。
      ValueRange range​(TemporalField field)
      指定されたフィールドの有効な値の範囲を取得します。
      static Comparator<OffsetDateTime> timeLineOrder()
      そのインスタントにのみ基づいて2つのOffsetDateTimeインスタンスを比較するコンパレータを取得します。
      long toEpochSecond()
      この日付/時間を、エポック(1970-01-01T00:00:00Z)からの秒数に変換します。
      Instant toInstant()
      この日付/時間をInstantに変換します。
      LocalDate toLocalDate()
      この日付/時間のLocalDate部分を取得します。
      LocalDateTime toLocalDateTime()
      この日付/時間のLocalDateTime部分を取得します。
      LocalTime toLocalTime()
      この日付/時間のLocalTime部分を取得します。
      OffsetTime toOffsetTime()
      この日付/時間をOffsetTimeに変換します。
      String toString()
      この日付/時間をStringとして出力します(2007-12-03T10:15:30+01:00など)。
      ZonedDateTime toZonedDateTime()
      オフセットをゾーンIDとして使用して、この日付/時間をZonedDateTimeに変換します。
      OffsetDateTime truncatedTo​(TemporalUnit unit)
      時間が切り捨てられた、このOffsetDateTimeのコピーを返します。
      long until​(Temporal endExclusive, TemporalUnit unit)
      もう一方の日付/時間までの時間量を指定された単位で計算します。
      OffsetDateTime with​(TemporalAdjuster adjuster)
      この日付/時間の調整済のコピーを返します。
      OffsetDateTime with​(TemporalField field, long newValue)
      指定されたフィールドを新しい値に設定して、この日付/時間のコピーを返します。
      OffsetDateTime withDayOfMonth​(int dayOfMonth)
      「月の日」を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withDayOfYear​(int dayOfYear)
      「年の日」を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withHour​(int hour)
      時の値を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withMinute​(int minute)
      分の値を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withMonth​(int month)
      月を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withNano​(int nanoOfSecond)
      ナノ秒の値を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withOffsetSameInstant​(ZoneOffset offset)
      結果が同じインスタントを持つようにしながら、指定されたオフセットを使って、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withOffsetSameLocal​(ZoneOffset offset)
      結果がローカル日付/時間を持つようにしながら、指定されたオフセットを使って、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withSecond​(int second)
      秒の値を変更して、このOffsetDateTimeのコピーを返します。
      OffsetDateTime withYear​(int year)
      年を変更して、このOffsetDateTimeのコピーを返します。
    • フィールドの詳細

      • MIN

        public static final OffsetDateTime MIN
        サポートされている最小のOffsetDateTimeである-999999999-01-01T00:00:00+18:00。 これは、最大オフセット(オフセットが大きくなるほど、時系列上では早くなる)での最小日付の開始時の午前零時のローカル日付/時間です。 これは、LocalDateTime.MINZoneOffset.MAXを組み合せます。 これは、アプリケーションによって遠い過去の日付/時間として使用されることがあります。
      • MAX

        public static final OffsetDateTime MAX
        サポートされている最大のOffsetDateTimeである+999999999-12-31T23:59:59.999999999-18:00。 これは、最小オフセット(負のオフセットが大きくなるほど、時系列上では遅くなる)での最大日付の終わりの午前零時直前のローカル日付/時間です。 これは、LocalDateTime.MAXZoneOffset.MINを組み合せます。 これは、アプリケーションによって遠い将来の日付/時間として使用されることがあります。
    • メソッドの詳細

      • now

        public static OffsetDateTime now()
        デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。

        これは、デフォルトのタイムゾーンのシステム・クロックを問い合せて、現在の日付/時間を取得します。 オフセットは、そのクロックのタイムゾーンから計算されます。

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

        戻り値:
        システム・クロックを使用する現在の日付/時間。null以外
      • now

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

        これは、システム・クロックを問い合せて現在の日付/時間を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。 オフセットは、指定されたタイムゾーンから計算されます。

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

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

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

        これは、指定されたクロックを問い合せて現在の日付/時間を取得します。 オフセットは、そのクロックのタイムゾーンから計算されます。

        このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックはdependency injectionを使用して導入できます。

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

        public static OffsetDateTime of​(LocalDate date,
                                        LocalTime time,
                                        ZoneOffset offset)
        日付、時間、およびオフセットからOffsetDateTimeのインスタンスを取得します。

        これは、指定されたローカルの日付、時間、およびオフセットを使用してオフセット日付/時間を作成します。

        パラメータ:
        date - ローカル日付。null以外
        time - ローカル時間。null以外
        offset - ゾーンオフセット。null以外
        戻り値:
        オフセット日付/時間。null以外
      • of

        public static OffsetDateTime of​(LocalDateTime dateTime,
                                        ZoneOffset offset)
        日付/時間およびオフセットからOffsetDateTimeのインスタンスを取得します。

        これは、指定されたローカル日付/時間およびオフセットを使用してオフセット日付/時間を作成します。

        パラメータ:
        dateTime - ローカル日付/時間。null以外
        offset - ゾーンオフセット。null以外
        戻り値:
        オフセット日付/時間。null以外
      • of

        public static OffsetDateTime of​(int year,
                                        int month,
                                        int dayOfMonth,
                                        int hour,
                                        int minute,
                                        int second,
                                        int nanoOfSecond,
                                        ZoneOffset offset)
        年、月、日、時、分、秒、ナノ秒、およびオフセットからOffsetDateTimeのインスタンスを取得します。

        これは、7つの指定されたフィールドを使用してオフセット日付/時間を作成します。

        このメソッドは、主としてテスト・ケースを作成するために存在しています。 テスト・コード以外では通常、別のメソッドを使ってオフセット時間を作成します。 LocalDateTimeには、より少ない引数を取る、同等のファクトリ・メソッドの簡易バリアントが他に5つあります。 APIのサイズを減らすため、それらについてはここでは説明しません。

        パラメータ:
        year - 表す年(MIN_YEARからMAX_YEARまで)
        month - 表される月。1(1月)-12(12月)
        dayOfMonth - 表される「月の日」(1-31)
        hour - 表される時(0-23)
        minute - 表される分(0-59)
        second - 表される秒(0-59)
        nanoOfSecond - 表現する「1秒のうちのナノ秒」、0から999,999,999
        offset - ゾーンオフセット。null以外
        戻り値:
        オフセット日付/時間。null以外
        例外:
        DateTimeException - いずれかのフィールドの値が範囲外である場合、または月の日が年の月に対して無効である場合
      • ofInstant

        public static OffsetDateTime ofInstant​(Instant instant,
                                               ZoneId zone)
        InstantおよびゾーンIDからOffsetDateTimeのインスタンスを取得します。

        これは、指定されたのと同じインスタントを使ってオフセット日付/時間を作成します。 インスタントごとに有効なオフセットは1つしかないため、UTC/グリニッジからのオフセットを見つけるのは簡単です。

        パラメータ:
        instant - 日付/時間の作成元のインスタント、null以外
        zone - タイムゾーン。オフセットの場合もある。null以外
        戻り値:
        オフセット日付/時間。null以外
        例外:
        DateTimeException - 結果がサポートされている範囲を超える場合
      • from

        public static OffsetDateTime from​(TemporalAccessor temporal)
        時間的オブジェクトからOffsetDateTimeのインスタンスを取得します。

        これは、指定された時間的オブジェクトに基づいてオフセット日付/時間を取得します。 TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでOffsetDateTimeのインスタンスに変換されます。

        この変換ではまず、時間的オブジェクトからZoneOffsetを取得します。 次に、LocalDateTimeの取得を試み、必要に応じてInstantにフォールバックします。 結果は、ZoneOffsetと、LocalDateTimeまたはInstantのどちらかとの組合せになります。 実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。

        このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照OffsetDateTime::fromを介して、問合せとして使用できます。

        パラメータ:
        temporal - 変換する一時オブジェクト、null以外
        戻り値:
        オフセット日付/時間。null以外
        例外:
        DateTimeException - OffsetDateTimeに変換できない場合
      • parse

        public static OffsetDateTime parse​(CharSequence text)
        2007-12-03T10:15:30+01:00などのテキスト文字列からOffsetDateTimeのインスタンスを取得します。

        この文字列は有効な日付/時間を表している必要があり、DateTimeFormatter.ISO_OFFSET_DATE_TIMEを使って解析されます。

        パラメータ:
        text - 「2007-12-03T10:15:30+01:00」などの解析対象のテキスト。null以外
        戻り値:
        解析されたオフセット日付/時間。null以外
        例外:
        DateTimeParseException - テキストが解析できない場合
      • parse

        public static OffsetDateTime parse​(CharSequence text,
                                           DateTimeFormatter formatter)
        特定のフォーマッタを使用して、テキスト文字列からOffsetDateTimeのインスタンスを取得します。

        そのテキストがフォーマッタを使って解析され、日付/時間が返されます。

        パラメータ:
        text - 解析するテキスト。null以外
        formatter - 使用するフォーマッタ、null以外
        戻り値:
        解析されたオフセット日付/時間。null以外
        例外:
        DateTimeParseException - テキストが解析できない場合
      • isSupported

        public boolean isSupported​(TemporalField field)
        指定されたフィールドがサポートされているかどうかをチェックします。

        これは、指定されたフィールドをこの日付/時間に問い合せることができるかどうかを確認します。 falseの場合、rangeget、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。

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

        • NANO_OF_SECOND
        • NANO_OF_DAY
        • MICRO_OF_SECOND
        • MICRO_OF_DAY
        • MILLI_OF_SECOND
        • MILLI_OF_DAY
        • SECOND_OF_MINUTE
        • SECOND_OF_DAY
        • MINUTE_OF_HOUR
        • MINUTE_OF_DAY
        • HOUR_OF_AMPM
        • CLOCK_HOUR_OF_AMPM
        • HOUR_OF_DAY
        • CLOCK_HOUR_OF_DAY
        • AMPM_OF_DAY
        • 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
        • INSTANT_SECONDS
        • OFFSET_SECONDS
        他のすべてのChronoFieldインスタンスはfalseを返します。

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

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

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

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

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

        • NANOS
        • MICROS
        • MILLIS
        • SECONDS
        • MINUTES
        • HOURS
        • HALF_DAYS
        • DAYS
        • WEEKS
        • MONTHS
        • YEARS
        • DECADES
        • CENTURIES
        • MILLENNIA
        • ERAS
        他のすべてのChronoUnitインスタンスはfalseを返します。

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

        定義:
        インタフェース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の場合、ここに問合せを実装します。 supported fieldsは、NANO_OF_DAYMICRO_OF_DAYEPOCH_DAYPROLEPTIC_MONTHおよびINSTANT_SECONDSを除いて、この日時に基づいて有効な値を返します。intにフィットするには大きすぎ、UnsupportedTemporalTypeExceptionをスローします。 他のすべての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 - 数値のオーバーフローが発生した場合
      • getOffset

        public ZoneOffset getOffset()
        「+01:00」などのゾーン・オフセットを取得します。

        これはUTC/グリニッジからのローカル日付/時間のオフセットです。

        戻り値:
        ゾーン・オフセット、null以外
      • withOffsetSameLocal

        public OffsetDateTime withOffsetSameLocal​(ZoneOffset offset)
        結果がローカル日付/時間を持つようにしながら、指定されたオフセットを使って、このOffsetDateTimeのコピーを返します。

        このメソッドは、同じLocalDateTimeおよび指定されたZoneOffsetを使ってオブジェクトを返します。 必要な計算や行われる計算はありません。 たとえば、この時間が2007-12-03T10:30+02:00を表し、指定されたオフセットが+03:00の場合、このメソッドは2007-12-03T10:30+03:00を返します。

        それらのオフセット間の差異を考慮に入れて、時間フィールドを調整するには、withOffsetSameInstant(java.time.ZoneOffset)を使用します。

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

        パラメータ:
        offset - 変更後のゾーンオフセット。null以外
        戻り値:
        リクエストされたオフセットを含む、この日付/時間に基づいたOffsetDateTime。null以外
      • withOffsetSameInstant

        public OffsetDateTime withOffsetSameInstant​(ZoneOffset offset)
        結果が同じインスタントを持つようにしながら、指定されたオフセットを使って、このOffsetDateTimeのコピーを返します。

        このメソッドは、指定されたZoneOffsetおよびLocalDateTimeを2つのオフセット間の差異によって調整してオブジェクトを返します。 これによって、同じインスタントを表す古いオブジェクトと新しいオブジェクトが生成されます。 これは、ローカル時間を異なるオフセットで検索する場合に役立ちます。 たとえば、この時間が2007-12-03T10:30+02:00を表し、指定されたオフセットが+03:00の場合、このメソッドは2007-12-03T11:30+03:00を返します。

        ローカル時間を調整しないでオフセットを変更するには、withOffsetSameLocal(java.time.ZoneOffset)を使用します。

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

        パラメータ:
        offset - 変更後のゾーンオフセット。null以外
        戻り値:
        リクエストされたオフセットを含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 結果がサポートされている日付範囲を超える場合
      • toLocalDateTime

        public LocalDateTime toLocalDateTime()
        この日付/時間のLocalDateTime部分を取得します。

        これは、この日付/時間と同じ年、月、日、および時間を使ってLocalDateTimeを返します。

        戻り値:
        この日付/時間のローカル日付/時間部分、null以外
      • toLocalDate

        public LocalDate toLocalDate()
        この日付/時間のLocalDate部分を取得します。

        これは、この日付/時間と同じ年、月、および日を使ってLocalDateを返します。

        戻り値:
        日付/時間の日付部分、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以外
      • toLocalTime

        public LocalTime toLocalTime()
        この日付/時間のLocalTime部分を取得します。

        これは、この日付/時間と同じ時、分、秒、およびナノ秒を使ってLocalTimeを返します。

        戻り値:
        日付/時間の時間部分、null以外
      • getHour

        public int getHour()
        時フィールドを取得します。
        戻り値:
        時(0-23)
      • getMinute

        public int getMinute()
        分フィールドを取得します。
        戻り値:
        分(0-59)
      • getSecond

        public int getSecond()
        秒フィールドを取得します。
        戻り値:
        秒(0-59)
      • getNano

        public int getNano()
        ナノ秒フィールドを取得します。
        戻り値:
        ナノ秒(0-999,999,999)
      • with

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

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

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

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

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

        クラスLocalDateLocalTime、およびZoneOffsetTemporalAdjusterを実装するため、このメソッドを使用すると、日付、時間、またはオフセットを変更できます。

          result = offsetDateTime.with(date);
          result = offsetDateTime.with(time);
          result = offsetDateTime.with(offset);
         

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

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

        定義:
        インタフェースTemporalwith
        パラメータ:
        adjuster - 使用するアジャスタ、null以外
        戻り値:
        調整が行われた、これに基づくOffsetDateTime。null以外
        例外:
        DateTimeException - 調整ができない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • with

        public OffsetDateTime with​(TemporalField field,
                                   long newValue)
        指定されたフィールドを新しい値に設定して、この日付/時間のコピーを返します。

        これは、指定されたフィールドの値を変更して、この時間に基づき、OffsetDateTimeを返します。 これを使用すると、年、月、「月の日」などのサポートされているフィールドを変更できます。 値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。

        場合によっては、指定されたフィールドを変更すると、結果となる日付/時間が無効になることがあります(1月31日の月を2月に変更すると、「月の日」が無効になるなど)。 このような場合、そのフィールドは日付の解決を行います。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。

        フィールドがChronoFieldの場合は、調整はここで実装されます。

        INSTANT_SECONDSフィールドは、指定されたインスタントを使って日付/時間を返します。 オフセットおよびナノ秒は変更されません。 新しいインスタント値が有効な範囲外にある場合は、DateTimeExceptionがスローされます。

        OFFSET_SECONDSフィールドは、指定されたオフセットを使って日付/時間を返します。 ローカル日付/時間は変更されません。 新しいオフセット値が有効な範囲外にある場合は、DateTimeExceptionがスローされます。

        その他のサポートされているフィールドは、LocalDateTime上の一致するメソッドのとおりに動作します。 この場合、オフセットは計算の一部ではないため、変更されません。

        他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、thisを引数として渡してTemporalField.adjustInto(Temporal, long)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。

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

        定義:
        インタフェースTemporalwith
        パラメータ:
        field - 結果に設定するフィールド、null以外
        newValue - 結果のフィールドの新しい値
        戻り値:
        指定されたフィールドが設定された、これに基づくOffsetDateTime。null以外
        例外:
        DateTimeException - フィールドを設定できない場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • withYear

        public OffsetDateTime withYear​(int year)
        年を変更して、このOffsetDateTimeのコピーを返します。

        この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。 その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。

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

        パラメータ:
        year - 結果に設定される年(MIN_YEARからMAX_YEARまで)
        戻り値:
        リクエストされた年を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 年の値が無効である場合
      • withMonth

        public OffsetDateTime withMonth​(int month)
        月を変更して、このOffsetDateTimeのコピーを返します。

        この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。 その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。

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

        パラメータ:
        month - 結果に設定される月。1(1月)-12(12月)
        戻り値:
        リクエストされた月を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 月の値が無効である場合
      • withDayOfMonth

        public OffsetDateTime withDayOfMonth​(int dayOfMonth)
        「月の日」を変更して、このOffsetDateTimeのコピーを返します。

        結果となるOffsetDateTimeが無効である場合は、例外がスローされます。 この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。

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

        パラメータ:
        dayOfMonth - 結果に設定される「月の日」。1から28-31まで
        戻り値:
        リクエストされた日を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 月の日の値が無効である場合、または月の日がその月-年に対して無効である場合
      • withDayOfYear

        public OffsetDateTime withDayOfYear​(int dayOfYear)
        「年の日」を変更して、このOffsetDateTimeのコピーを返します。

        この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。 結果となるOffsetDateTimeが無効である場合は、例外がスローされます。

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

        パラメータ:
        dayOfYear - 結果に設定される「年の日」。1から365-366まで
        戻り値:
        リクエストされた日を含む、この日付に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 年の日の値が無効である場合、または年の日がその年に対して無効である場合
      • withHour

        public OffsetDateTime withHour​(int hour)
        時の値を変更して、このOffsetDateTimeのコピーを返します。

        日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。

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

        パラメータ:
        hour - 結果に設定される時(0-23)
        戻り値:
        リクエストされた時を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 時の値が無効である場合
      • withMinute

        public OffsetDateTime withMinute​(int minute)
        分の値を変更して、このOffsetDateTimeのコピーを返します。

        日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。

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

        パラメータ:
        minute - 結果に設定される分(0-59)
        戻り値:
        リクエストされた分を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 分の値が無効である場合
      • withSecond

        public OffsetDateTime withSecond​(int second)
        秒の値を変更して、このOffsetDateTimeのコピーを返します。

        日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。

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

        パラメータ:
        second - 結果に設定される秒(0-59)
        戻り値:
        リクエストされた秒を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - 秒の値が無効である場合
      • withNano

        public OffsetDateTime withNano​(int nanoOfSecond)
        ナノ秒の値を変更して、このOffsetDateTimeのコピーを返します。

        日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。

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

        パラメータ:
        nanoOfSecond - 結果に設定されるナノ秒(0-999,999,999)
        戻り値:
        リクエストされたナノ秒を含む、この日付/時間に基づいたOffsetDateTime。null以外
        例外:
        DateTimeException - ナノ秒の値が無効である場合
      • truncatedTo

        public OffsetDateTime truncatedTo​(TemporalUnit unit)
        時間が切り捨てられた、このOffsetDateTimeのコピーを返します。

        切り詰めでは、指定された単位よりも小さいフィールドをゼロに設定して、元の日付/時間のコピーを返します。 たとえば、単位で切り詰めると、秒およびナノ秒フィールドはゼロに設定されます。

        単位は、標準日の長さを余りなしで等分するデュレーションを持つ必要があります。 これには、ChronoUnitDAYSで提供されるすべての時間単位が含まれます。 他の単位は例外をスローします。

        オフセットは計算に影響を及ぼさないため、結果でも同じになります。

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

        パラメータ:
        unit - 切り捨てを行う単位、nullでない
        戻り値:
        時間が切り捨てられた、この日付/時間に基づくOffsetDateTime。null以外
        例外:
        DateTimeException - 切り捨てられない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
      • plus

        public OffsetDateTime plus​(TemporalAmount amountToAdd)
        指定された量を加算した、この日付/時間のコピーを返します。

        これは、指定された量を加算して、この日付/時間に基づくOffsetDateTimeを返します。 この量は通常PeriodまたはDurationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。

        計算は、TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。

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

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

        public OffsetDateTime plus​(long amountToAdd,
                                   TemporalUnit unit)
        指定された量を加算した、この日付/時間のコピーを返します。

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

        フィールドがChronoUnitである場合は、LocalDateTime.plus(long, TemporalUnit)によって加算が実装されます。 オフセットは計算の一部ではないため、結果でも変わりません。

        フィールドがChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。

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

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

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

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

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

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

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

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

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

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

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

        たとえば、2007-03-31に1月を加算すると、2007-04-31という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-04-30が選択されます。

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

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

        public OffsetDateTime plusWeeks​(long weeks)
        指定された週数を加算して、このOffsetDateTimeのコピーを返します。

        このメソッドは、指定された週単位の量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。 この結果が無効になるのは、最大/最小の年を超える場合のみです。

        たとえば、2008-12-31に1週間を加算すると、2009-01-07という結果になります。

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

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

        public OffsetDateTime plusDays​(long days)
        指定された日数を加算して、このOffsetDateTimeのコピーを返します。

        このメソッドは、指定された量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。 この結果が無効になるのは、最大/最小の年を超える場合のみです。

        たとえば、2008-12-31に1日を加算すると、2009-01-01という結果になります。

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

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

        public OffsetDateTime plusHours​(long hours)
        指定された時間数を加算して、このOffsetDateTimeのコピーを返します。

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

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

        public OffsetDateTime plusMinutes​(long minutes)
        指定された分数を加算して、このOffsetDateTimeのコピーを返します。

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

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

        public OffsetDateTime plusSeconds​(long seconds)
        指定された秒数を加算して、このOffsetDateTimeのコピーを返します。

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

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

        public OffsetDateTime plusNanos​(long nanos)
        指定されたナノ秒数を加算して、このOffsetDateTimeのコピーを返します。

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

        パラメータ:
        nanos - 加算するナノ秒数。負の値の場合もある
        戻り値:
        そのナノ秒数が加算された、この日付/時間に基づくOffsetDateTime。null以外
        例外:
        DateTimeException - その単位をこの型に追加できない場合
      • minus

        public OffsetDateTime minus​(TemporalAmount amountToSubtract)
        指定された量を減算した、この日付/時間のコピーを返します。

        これは、指定された量を減算して、この日付/時間に基づくOffsetDateTimeを返します。 この量は通常PeriodまたはDurationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。

        計算は、TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public OffsetDateTime minusWeeks​(long weeks)
        指定された週数を減算して、このOffsetDateTimeのコピーを返します。

        このメソッドは、指定された週単位の量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。 この結果が無効になるのは、最大/最小の年を超える場合のみです。

        たとえば、2009-01-07から1週間を減算すると、2008-12-31という結果になります。

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

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

        public OffsetDateTime minusDays​(long days)
        指定された日数を減算して、このOffsetDateTimeのコピーを返します。

        このメソッドは、指定された量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。 この結果が無効になるのは、最大/最小の年を超える場合のみです。

        たとえば、2009-01-01から1日を減算すると、2008-12-31という結果になります。

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

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

        public OffsetDateTime minusHours​(long hours)
        指定された時間数を減算して、このOffsetDateTimeのコピーを返します。

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

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

        public OffsetDateTime minusMinutes​(long minutes)
        指定された分数を減算して、このOffsetDateTimeのコピーを返します。

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

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

        public OffsetDateTime minusSeconds​(long seconds)
        指定された秒数を減算して、このOffsetDateTimeのコピーを返します。

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

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

        public OffsetDateTime minusNanos​(long nanos)
        指定されたナノ秒数を減算して、このOffsetDateTimeのコピーを返します。

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

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

        public <R> R query​(TemporalQuery<R> query)
        指定された問合せを使用してこの日付/時間を問い合わせます。

        これは指定された問合せ方法オブジェクトを使用してこの日付/時間を問い合わせます。 TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。

        このメソッドの結果は、thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。

        定義:
        インタフェースTemporalAccessorquery
        型パラメータ:
        R - 結果の型
        パラメータ:
        query - 呼び出す問合せ、null以外
        戻り値:
        問合せ結果、nullが返されることがある(問合せによって定義される)
        例外:
        DateTimeException - 問い合わせできない場合(問合せによって定義される)
        ArithmeticException - 数値のオーバーフローが発生した場合(問合せによって定義される)
      • adjustInto

        public Temporal adjustInto​(Temporal temporal)
        指定された時間的オブジェクトを、このオブジェクトと同じオフセット、日付、および時間を持つように調整します。

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

        この調整は、ChronoField.EPOCH_DAYChronoField.NANO_OF_DAY、およびChronoField.OFFSET_SECONDSをフィールドとして渡してTemporal.with(TemporalField, long)を3回使用することと同等です。

        ほとんどのケースで、Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。

           // these two lines are equivalent, but the second approach is recommended
           temporal = thisOffsetDateTime.adjustInto(temporal);
           temporal = temporal.with(thisOffsetDateTime);
         

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

        定義:
        インタフェースTemporalAdjusteradjustInto
        パラメータ:
        temporal - 調整するターゲット・オブジェクト、null以外
        戻り値:
        調整されるオブジェクト、null以外
        例外:
        DateTimeException - 調整を実行できない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • until

        public long until​(Temporal endExclusive,
                          TemporalUnit unit)
        もう一方の日付/時間までの時間量を指定された単位で計算します。

        これは、1つのTemporalUnitを単位として、2つのOffsetDateTimeオブジェクト間の時間量を計算します。 始点と終点は、これと指定された日付/時間です。 終了が開始より前である場合、結果は負になります。 たとえば、2つの日付/時間の間の日数は、startDateTime.until(endDateTime, DAYS)を使用して計算できます。

        このメソッドに渡されたTemporalは、from(TemporalAccessor)を使用してOffsetDateTimeに変換されます。 2つの日付/時間の間でオフセットが異なる場合は、指定された終了日付/時間がこの日付/時間と同じオフセットを持つように正規化されます。

        この計算では、2つの日付/時間の間の完全な単位の数を表す整数を返します。 たとえば、2012-06-15T00:00Zと2012-08-14T23:59Zの間の月数は、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のこのメソッドに実装します。 サポートされている単位は、NANOSMICROSMILLISSECONDSMINUTESHOURSHALF_DAYSDAYSWEEKSMONTHSYEARSDECADESCENTURIESMILLENNIA、およびERASです。 その他のChronoUnit値は例外をスローします。

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

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

        定義:
        インタフェースTemporaluntil
        パラメータ:
        endExclusive - OffsetDateTimeに変換される終了日付(これを含まない)。null以外
        unit - 量を測定する単位、null以外
        戻り値:
        この日付/時間から終了日付/時間までの時間量
        例外:
        DateTimeException - その量を計算できないか、終了時間をOffsetDateTimeに変換できない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • format

        public String format​(DateTimeFormatter formatter)
        指定されたフォーマッタを使用してこの日付/時間を書式設定します。

        この日付/時間はフォーマッタに渡され、文字列が生成されます。

        パラメータ:
        formatter - 使用するフォーマッタ、null以外
        戻り値:
        書式設定済の日付/時間文字列、null以外
        例外:
        DateTimeException - 出力時にエラーが発生した場合
      • atZoneSameInstant

        public ZonedDateTime atZoneSameInstant​(ZoneId zone)
        結果に同じインスタントが含まれるようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTimeを作成します。

        これは、この日付/時間および指定されたタイムゾーンから形成されたZonedDateTimeを返します。 この変換では、表示可能なローカル日付/時間を無視し、代わりにベースとなるインスタントを使用します。 これにより、ローカル時系列のギャップまたはオーバーラップの問題を回避できます。 結果では、時、分、日などのフィールドにさまざまな値が含まれる可能性があります。

        それらのフィールド値の保持を試みるには、atZoneSimilarLocal(ZoneId)を使用します。 オフセットをゾーンIDとして使用するには、toZonedDateTime()を使用します。

        パラメータ:
        zone - 使用するタイムゾーン、null以外
        戻り値:
        この日付/時間から形成されたゾーン付きの日付/時間、null以外
      • atZoneSimilarLocal

        public ZonedDateTime atZoneSimilarLocal​(ZoneId zone)
        同じローカルの日付と時間を保持するようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTimeを作成します。

        これは、この日付/時間および指定されたタイムゾーンから形成されたZonedDateTimeを返します。 可能な場合、結果にはこのオブジェクトと同じローカル日付/時間が含まれます。

        サマー・タイムなどのタイムゾーン・ルールは、ローカル時系列上のすべて時間が存在するとはかぎらないことを意味しています。 それらのルールに従ってローカル日付/時間がギャップまたはオーバーラップに存在する場合は、リゾルバを使って結果となるローカル時間およびオフセットが決められます。 このメソッドは、ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset)を使用して、このインスタンスからのオフセットを保持します(可能な場合)。

        ギャップおよびオーバーラップのより細かい制御は2つの方法で用意されています。 オーバーラップ時に遅い方のオフセットを使用するだけの場合は、このメソッドの直後にZonedDateTime.withLaterOffsetAtOverlap()を呼び出します。

        ローカル時系列に関係なく同じインスタントでゾーン付きの日付/時間を作成するには、atZoneSameInstant(ZoneId)を使用します。 オフセットをゾーンIDとして使用するには、toZonedDateTime()を使用します。

        パラメータ:
        zone - 使用するタイムゾーン、null以外
        戻り値:
        この日付と、そのゾーンでもっとも早い有効な時間から形成されたゾーン付きの日付/時間。null以外
      • toOffsetTime

        public OffsetTime toOffsetTime()
        この日付/時間をOffsetTimeに変換します。

        これは、同じローカル時間およびオフセットを使ってオフセット時間を返します。

        戻り値:
        その時間およびオフセットを表すOffsetTime。null以外
      • toZonedDateTime

        public ZonedDateTime toZonedDateTime()
        オフセットをゾーンIDとして使用して、この日付/時間をZonedDateTimeに変換します。

        これは、オフセットをゾーンIDとして使用して、考えられるもっとも単純なZonedDateTimeを作成します。

        使用されるタイムゾーンを制御するには、atZoneSameInstant(ZoneId)およびatZoneSimilarLocal(ZoneId)を参照してください。

        戻り値:
        同じローカル日付/時間およびオフセットを表すゾーン付きの日付/時間。null以外
      • toInstant

        public Instant toInstant()
        この日付/時間をInstantに変換します。

        これは、この日付/時間と同じ時系列上の時点を表すInstantを返します。

        戻り値:
        同じインスタントを表すInstant、null以外
      • toEpochSecond

        public long toEpochSecond()
        この日付/時間を、エポック(1970-01-01T00:00:00Z)からの秒数に変換します。

        これにより、この日付/時間をエポック秒フィールドの値に変換できます。 これは一般的なアプリケーションの使用法ではなく、低レベルの変換を主な目的としたものです。

        戻り値:
        1970-01-01T00:00:00Zのエポックからの秒数
      • compareTo

        public int compareTo​(OffsetDateTime other)
        この日付/時間を別の日付/時間と比較します。

        この比較は、まずインスタントに基づいて行われ、次にローカル日付/時間に基づいて行われます。 Comparableに定義されているとおりに、equalsと一致しています。

        たとえば、以下はコンパレータの順序です。

        1. 2008-12-03T10:30+01:00
        2. 2008-12-03T11:00+01:00
        3. 2008-12-03T12:00+02:00
        4. 2008-12-03T11:30+01:00
        5. 2008-12-03T12:00+01:00
        6. 2008-12-03T12:30+01:00
        2番目と3番目の値は、時系列上の同じインスタントを表しています。 2つの値が同じインスタントを表している場合は、それらを区別するためにローカル日付/時間が比較されます。 この手順は、順序付けがequals()と矛盾しないようにするために必要です。

        定義:
        compareTo、インタフェース: Comparable<OffsetDateTime>
        パラメータ:
        other - 他の比較する日付/時間、null以外
        戻り値:
        コンパレータ値、小さい場合は負、大きい場合は正
      • isAfter

        public boolean isAfter​(OffsetDateTime other)
        この日付/時間のインスタントが、指定された日付/時間のインスタントより後であるかどうかをチェックします。

        このメソッドは、日付/時間のインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)およびequals(java.lang.Object)での比較とは異なります。 これは、dateTime1.toInstant().isAfter(dateTime2.toInstant());を使用する場合と同等です。

        パラメータ:
        other - 他の比較する日付/時間、null以外
        戻り値:
        これが指定された日付/時間のインスタントより後にある場合はtrue
      • isBefore

        public boolean isBefore​(OffsetDateTime other)
        この日付/時間のインスタントが、指定された日付/時間のインスタントより前であるかどうかをチェックします。

        このメソッドは、日付/時間のインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)での比較とは異なります。 これは、dateTime1.toInstant().isBefore(dateTime2.toInstant());を使用する場合と同等です。

        パラメータ:
        other - 他の比較する日付/時間、null以外
        戻り値:
        これが指定された日付/時間のインスタントより前にある場合はtrue
      • isEqual

        public boolean isEqual​(OffsetDateTime other)
        この日付/時間のインスタントが、指定された日付/時間のインスタントと等しいかどうかをチェックします。

        このメソッドは、日付/時間のインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)およびequals(java.lang.Object)での比較とは異なります。 これは、dateTime1.toInstant().equals(dateTime2.toInstant());を使用する場合と同等です。

        パラメータ:
        other - 他の比較する日付/時間、null以外
        戻り値:
        インスタントが、指定された日付/時間のインスタントと等しい場合はtrue
      • equals

        public boolean equals​(Object obj)
        この日付/時間が別の日付/時間と等しいかどうかをチェックします。

        この比較は、ローカル日付/時間およびオフセットに基づいて行われます。 時系列上の同じインスタントに対して比較を行うには、isEqual(java.time.OffsetDateTime)を使用します。 OffsetDateTime型のオブジェクトのみが比較され、それ以外の型はfalseを返します。

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

        public String toString()
        この日付/時間をStringとして出力します(2007-12-03T10:15:30+01:00など)。

        この出力は、次のISO-8601形式のいずれかになります。

        • uuuu-MM-dd'T'HH:mmXXXXX
        • uuuu-MM-dd'T'HH:mm:ssXXXXX
        • uuuu-MM-dd'T'HH:mm:ss.SSSXXXXX
        • uuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXX
        • uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
        使用される形式は、完全な時間値を出力するもっとも短いものになり、省略部分はゼロであると暗に示されます。

        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        この日付/時間の文字列表現、null以外