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

クラスZonedDateTime

java.lang.Object
java.time.ZonedDateTime
すべての実装されたインタフェース:
Serializable, Comparable<ChronoZonedDateTime<?>>, ChronoZonedDateTime<LocalDate>, Temporal, TemporalAccessor

public final class ZonedDateTime
extends Object
implements Temporal, ChronoZonedDateTime<LocalDate>, Serializable
ISO-8601の暦体系によるタイムゾーン付きの日付/時間です(2007-12-03T10:15:30+01:00 Europe/Parisなど)。

ZonedDateTimeはタイムゾーン付き日付/時間の不変表現です。 このクラスは、すべての日付および時間フィールド (ナノ秒精度) とタイムゾーン (あいまいなローカル日付/時間を処理するために使用するゾーン・オフセット付き) を格納します。 たとえば、値2nd October 2007 at 13:45.30.123456789 +02:00 in the Europe/Paris time-zoneをZonedDateTimeに格納できます。

このクラスは、LocalDateTimeのローカル時系列からInstantのインスタント時系列への変換を処理します。 この2つの時系列の違いは、ZoneOffsetで表される、UTC/グリニッジからのオフセットです。

2つの時系列の間の変換には、ZoneIdからアクセスされるルールを使用したオフセット計算が必要です。 インスタントのオフセットを取得するのは単純です。インスタントごとに有効なオフセットは正確に1つだけ存在するためです。 これに対し、ローカル日付/時間のオフセットを取得することは単純ではありません。 3つのケースがあります。

  • 通常、有効なオフセットが1つ。 年の大部分は通常ケースが適用されます。ローカル日付/時間に有効なオフセットが1つ存在します。
  • ギャップ、有効なオフセットがゼロ。 これは一般的に、春サマー・タイムが冬から夏に変わったために、クロックが前方向にジャンプするときです。 ギャップには、有効なオフセットを持たないローカル日付/時間値が存在します。
  • 重複、有効なオフセットが2つ。 これは一般的に、秋サマー・タイムが夏から冬に変わったために、クロックが後方向に戻るときです。 重複には、有効なオフセットを2つ持つローカル日付/時間値が存在します。

オフセットを取得することで直接または暗黙にローカル日付/時間からインスタントに変換するメソッドは、複雑になる可能性があります。

ギャップの一般戦略では、ローカル日付/時間がギャップ内にある場合は、結果のゾーン付き日付/時間はローカル日付/時間をギャップの長さ分前方向にシフトさせます。その結果、後のオフセット内の日付/時間(一般的に夏時間)になります。

重複の一般戦略では、ローカル日付/時間が重複内にある場合は、直前のオフセットが保持されます。 直前のオフセットがない場合、または直前のオフセットが無効な場合、先のオフセット(一般的に夏時間)が使用されます。 2つの追加メソッド(withEarlierOffsetAtOverlap()withLaterOffsetAtOverlap())は、重複のケースを管理するのに役立ちます。

設計の観点からは、このクラスは主としてLocalDateTimeおよびZoneIdの組合せとして表示するべきです。 ZoneOffsetは、クラスがインスタントを表現することを保証するために使用される(特にサマー・タイム重複中)、重要ですが補助的な情報です。

これは値ベースのクラスなので、ID依存操作(参照等価性(==)、IDハッシュ・コード、同期など)をZonedDateTimeのインスタンスで使用することは、予期できない結果になる可能性があり、避けてください。 比較する場合は、equalsメソッドを使用することをお薦めします。

実装要件:
ZonedDateTimeは、3つの別個のオブジェクト(LocalDateTimeZoneIdおよび解決されたZoneOffset)と同等の状態を保持します。 オフセットとローカル日付/時間は、必要に応じてインスタントを定義するために使用されます。 ゾーンIDは、オフセットがどのようにいつ変化するかのルールを取得するために使用されます。 どのオフセットが有効かはゾーンが制御するため、オフセットは自由に設定できません。

このクラスは不変でスレッドセーフです。

導入されたバージョン:
1.8
関連項目:
直列化された形式
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    boolean equals​(Object obj)
    この日付/時間が別の日付/時間と等しいかどうかをチェックします。
    String format​(DateTimeFormatter formatter)
    指定されたフォーマッタを使用してこの日付/時間を書式設定します。
    static ZonedDateTime from​(TemporalAccessor temporal)
    時間的オブジェクトからZonedDateTimeのインスタンスを取得します。
    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()
    年フィールドを取得します。
    ZoneId getZone()
    Europe/Parisなど、タイムゾーンを取得します。
    int hashCode()
    この日付/時間のハッシュ・コード。
    boolean isSupported​(TemporalField field)
    指定されたフィールドがサポートされているかどうかをチェックします。
    boolean isSupported​(TemporalUnit unit)
    指定された単位がサポートされているかどうかをチェックします。
    ZonedDateTime minus​(long amountToSubtract, TemporalUnit unit)
    指定された量を減算した、この日付/時間のコピーを返します。
    ZonedDateTime minus​(TemporalAmount amountToSubtract)
    指定された量を減算した、この日付/時間のコピーを返します。
    ZonedDateTime minusDays​(long days)
    指定された日数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusHours​(long hours)
    指定された時間数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusMinutes​(long minutes)
    指定された分数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusMonths​(long months)
    指定された月数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusNanos​(long nanos)
    指定されたナノ秒数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusSeconds​(long seconds)
    指定された秒数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusWeeks​(long weeks)
    指定された週数を減算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime minusYears​(long years)
    指定された年数を減算して、このZonedDateTimeのコピーを返します。
    static ZonedDateTime now()
    デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。
    static ZonedDateTime now​(Clock clock)
    指定されたクロックから現在の日付/時間を取得します。
    static ZonedDateTime now​(ZoneId zone)
    指定されたタイムゾーンのシステム・クロックから現在の日付/時間を取得します。
    static ZonedDateTime of​(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone)
    年、月、日、時、分、秒、ナノ秒、およびタイムゾーンからZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime of​(LocalDate date, LocalTime time, ZoneId zone)
    ローカルの日付と時間からZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime of​(LocalDateTime localDateTime, ZoneId zone)
    ローカル日付/時間からZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime ofInstant​(Instant instant, ZoneId zone)
    InstantからZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime ofInstant​(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
    ローカル日付/時間とオフセットを組み合せることで形成されるインスタントからZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime ofLocal​(LocalDateTime localDateTime, ZoneId zone, ZoneOffset preferredOffset)
    可能であれば優先オフセットを使用して、ローカル日付/時間からZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime ofStrict​(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
    ローカル日付/時間、オフセット、およびゾーンIDの組合せを厳密に検証して、ZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime parse​(CharSequence text)
    2007-12-03T10:15:30+01:00[Europe/Paris]などのテキスト文字列からZonedDateTimeのインスタンスを取得します。
    static ZonedDateTime parse​(CharSequence text, DateTimeFormatter formatter)
    特定のフォーマッタを使用して、テキスト文字列からZonedDateTimeのインスタンスを取得します。
    ZonedDateTime plus​(long amountToAdd, TemporalUnit unit)
    指定された量を加算した、この日付/時間のコピーを返します。
    ZonedDateTime plus​(TemporalAmount amountToAdd)
    指定された量を加算した、この日付/時間のコピーを返します。
    ZonedDateTime plusDays​(long days)
    指定された日数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusHours​(long hours)
    指定された時間数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusMinutes​(long minutes)
    指定された分数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusMonths​(long months)
    指定された月数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusNanos​(long nanos)
    指定されたナノ秒数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusSeconds​(long seconds)
    指定された秒数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusWeeks​(long weeks)
    指定された週数を加算して、このZonedDateTimeのコピーを返します。
    ZonedDateTime plusYears​(long years)
    指定された年数を加算して、このZonedDateTimeのコピーを返します。
    <R> R query​(TemporalQuery<R> query)
    指定された問合せを使用してこの日付/時間を問い合わせます。
    ValueRange range​(TemporalField field)
    指定されたフィールドの有効な値の範囲を取得します。
    LocalDate toLocalDate()
    この日付/時間のLocalDate部分を取得します。
    LocalDateTime toLocalDateTime()
    この日付/時間のLocalDateTime部分を取得します。
    LocalTime toLocalTime()
    この日付/時間のLocalTime部分を取得します。
    OffsetDateTime toOffsetDateTime()
    この日付/時間をOffsetDateTimeに変換します。
    String toString()
    この日付/時間をStringとして出力します(2007-12-03T10:15:30+01:00[Europe/Paris]など)。
    ZonedDateTime truncatedTo​(TemporalUnit unit)
    時間が切り捨てられた、このZonedDateTimeのコピーを返します。
    long until​(Temporal endExclusive, TemporalUnit unit)
    もう一方の日付/時間までの時間量を指定された単位で計算します。
    ZonedDateTime with​(TemporalAdjuster adjuster)
    この日付/時間の調整済のコピーを返します。
    ZonedDateTime with​(TemporalField field, long newValue)
    指定されたフィールドを新しい値に設定して、この日付/時間のコピーを返します。
    ZonedDateTime withDayOfMonth​(int dayOfMonth)
    日の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withDayOfYear​(int dayOfYear)
    「年の日」を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withEarlierOffsetAtOverlap()
    ゾーン・オフセットを、ローカル時系列のオーバーラップ時における2つの有効なオフセットのうちの早い方に変更して、この日付/時間のコピーを返します。
    ZonedDateTime withFixedOffsetZone()
    ゾーンIDをオフセットに設定して、この日付/時間のコピーを返します。
    ZonedDateTime withHour​(int hour)
    時の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withLaterOffsetAtOverlap()
    ゾーン・オフセットを、ローカル時系列のオーバーラップ時における2つの有効なオフセットのうちの遅い方に変更して、この日付/時間のコピーを返します。
    ZonedDateTime withMinute​(int minute)
    分の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withMonth​(int month)
    月の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withNano​(int nanoOfSecond)
    ナノ秒の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withSecond​(int second)
    秒の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withYear​(int year)
    年の値を変更して、このZonedDateTimeのコピーを返します。
    ZonedDateTime withZoneSameInstant​(ZoneId zone)
    インスタントを保持したまま、別のタイムゾーンを使ってこの日付/時間のコピーを返します。
    ZonedDateTime withZoneSameLocal​(ZoneId zone)
    可能であればローカル日付/時間を保持したまま、別のタイムゾーンを使って、この日付/時間のコピーを返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    インタフェース java.time.chrono.ChronoZonedDateTimeで宣言されたメソッド

    compareTo, getChronology, isAfter, isBefore, isEqual, toEpochSecond, toInstant
  • メソッドの詳細

    • now

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

      これは、デフォルトのタイムゾーンのシステム・クロックを問い合せて、現在の日付/時間を取得します。 ゾーンおよびオフセットは、そのクロックのタイムゾーンに基づいて設定されます。

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

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

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

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

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

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

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

      これは、指定されたクロックを問い合せて現在の日付/時間を取得します。 ゾーンおよびオフセットは、そのクロックのタイムゾーンに基づいて設定されます。

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

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

      public static ZonedDateTime of​(LocalDate date, LocalTime time, ZoneId zone)
      ローカルの日付と時間からZonedDateTimeのインスタンスを取得します。

      これは、入力のローカル日付と時間にできるかぎり一致する、ゾーン付き日付/時間を作成します。 夏時間などのタイムゾーンのルールでは、指定されたゾーンで、すべてのローカル日付/時間が有効であるとは限らないことを意味するため、ローカル日付/時間が調整されることがあります。

      最初に、ローカル日付と時間が組み合わされてローカル日付/時間が形成されます。 次に、ローカル日付/時間は時系列上の単一インスタントに解決されます。 これは、ゾーンIDのrulesによって定義されているとおりに、ローカル日付/時間のUTC/グリニッジ標準時からの有効なオフセットを見つけることによって、実現されます。

      ほとんどの場合に、ローカル日付/時間の有効なオフセットは1つだけです。 重複の場合は、クロックが後方向に戻されたときに、2つの有効なオフセットが存在します。 このメソッドは、一般に「夏」に対応する早い方のオフセットを使用します。

      ギャップの場合は、クロックが前方向にジャンプしたときに、有効なオフセットが存在しません。 代わりに、ローカル日付/時間がギャップの長さだけ後ろに調整されます。 一般的な1時間の夏時間の変更では、ローカル日付/時間が、一般に「夏」に対応するオフセットの中の1時間後方に移動されます。

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

      public static ZonedDateTime of​(LocalDateTime localDateTime, ZoneId zone)
      ローカル日付/時間からZonedDateTimeのインスタンスを取得します。

      これは、入力のローカル日付/時間にできるかぎり一致する、ゾーン付き日付/時間を作成します。 夏時間などのタイムゾーンのルールでは、指定されたゾーンで、すべてのローカル日付/時間が有効であるとは限らないことを意味するため、ローカル日付/時間が調整されることがあります。

      ローカル日付/時間は時系列上の単一のインスタントに解決されます。 これは、ゾーンIDのrulesによって定義されているとおりに、ローカル日付/時間のUTC/グリニッジ標準時からの有効なオフセットを見つけることによって、実現されます。

      ほとんどの場合に、ローカル日付/時間の有効なオフセットは1つだけです。 重複の場合は、クロックが後方向に戻されたときに、2つの有効なオフセットが存在します。 このメソッドは、一般に「夏」に対応する早い方のオフセットを使用します。

      ギャップの場合は、クロックが前方向にジャンプしたときに、有効なオフセットが存在しません。 代わりに、ローカル日付/時間がギャップの長さだけ後ろに調整されます。 一般的な1時間の夏時間の変更では、ローカル日付/時間が、一般に「夏」に対応するオフセットの中の1時間後方に移動されます。

      パラメータ:
      localDateTime - ローカル日付/時間、nullでない
      zone - タイムゾーン、null以外
      戻り値:
      ゾーン付きの日付/時間、null以外
    • of

      public static ZonedDateTime of​(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone)
      年、月、日、時、分、秒、ナノ秒、およびタイムゾーンからZonedDateTimeのインスタンスを取得します。

      これは、指定された7フィールドのローカル日付/時間にできるかぎり一致する、ゾーン付き日付/時間を作成します。 夏時間などのタイムゾーンのルールでは、指定されたゾーンで、すべてのローカル日付/時間が有効であるとは限らないことを意味するため、ローカル日付/時間が調整されることがあります。

      ローカル日付/時間は時系列上の単一のインスタントに解決されます。 これは、ゾーンIDのrulesによって定義されているとおりに、ローカル日付/時間のUTC/グリニッジ標準時からの有効なオフセットを見つけることによって、実現されます。

      ほとんどの場合に、ローカル日付/時間の有効なオフセットは1つだけです。 重複の場合は、クロックが後方向に戻されたときに、2つの有効なオフセットが存在します。 このメソッドは、一般に「夏」に対応する早い方のオフセットを使用します。

      ギャップの場合は、クロックが前方向にジャンプしたときに、有効なオフセットが存在しません。 代わりに、ローカル日付/時間がギャップの長さだけ後ろに調整されます。 一般的な1時間の夏時間の変更では、ローカル日付/時間が、一般に「夏」に対応するオフセットの中の1時間後方に移動されます。

      このメソッドは、主としてテスト・ケースを作成するために存在しています。 テスト・コード以外では通常、別のメソッドを使ってオフセット時間を作成します。 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
      zone - タイムゾーン、null以外
      戻り値:
      オフセット日付/時間。null以外
      例外:
      DateTimeException - いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合
    • ofLocal

      public static ZonedDateTime ofLocal​(LocalDateTime localDateTime, ZoneId zone, ZoneOffset preferredOffset)
      可能であれば優先オフセットを使用して、ローカル日付/時間からZonedDateTimeのインスタンスを取得します。

      ローカル日付/時間は時系列上の単一のインスタントに解決されます。 これは、ゾーンIDのrulesによって定義されているとおりに、ローカル日付/時間のUTC/グリニッジ標準時からの有効なオフセットを見つけることによって、実現されます。

      ほとんどの場合に、ローカル日付/時間の有効なオフセットは1つだけです。 重複がある場合、クロックが設定し直され、2つの有効なオフセットが存在します。 優先されるオフセットが有効なオフセットの1つである場合は、それが使用されます。 それ以外の場合は、先の有効なオフセットが使用されます(一般的に夏に対応)。

      ギャップがある場合、クロックは前方にジャンプし、有効なオフセットが存在しません。 代わりに、ローカル日付/時間がギャップの長さだけ後ろに調整されます。 一般的な1時間の夏時間の変更では、ローカル日付/時間が、一般に「夏」に対応するオフセットの中の1時間後方に移動されます。

      パラメータ:
      localDateTime - ローカル日付/時間、nullでない
      zone - タイムゾーン、null以外
      preferredOffset - ゾーン・オフセット、優先がない場合はnull
      戻り値:
      ゾーン付きの日付/時間、null以外
    • ofInstant

      public static ZonedDateTime ofInstant​(Instant instant, ZoneId zone)
      InstantからZonedDateTimeのインスタンスを取得します。

      これは、指定されたものと同じインスタントでゾーン付き日付/時間を作成します。 ChronoZonedDateTime.toInstant()を呼び出すと、ここで使用されるものと同等のインスタントが返されます。

      インスタントをゾーン付き日付/時間に変換することは単純です。インスタントごとに有効なオフセットは1つだけ存在するためです。

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

      public static ZonedDateTime ofInstant​(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
      ローカル日付/時間とオフセットを組み合せることで形成されるインスタントからZonedDateTimeのインスタンスを取得します。

      これは、LocalDateTimeZoneOffset組み合わせることでゾーン付き日付/時間を作成します。 この組合せはインスタントをあいまいさなしに一意に指定します。

      インスタントをゾーン付き日付/時間に変換することは単純です。インスタントごとに有効なオフセットは1つだけ存在するためです。 有効なオフセットと指定されたオフセットが異なる場合、ゾーン付き日付/時間の日付/時間とオフセットは指定されたものと異なってきます。

      使用されるZoneIdZoneOffsetの場合、このメソッドはof(LocalDateTime, ZoneId)と同等です。

      パラメータ:
      localDateTime - ローカル日付/時間、nullでない
      offset - ゾーンオフセット。null以外
      zone - タイムゾーン、null以外
      戻り値:
      ゾーン付きの日付/時間、null以外
    • ofStrict

      public static ZonedDateTime ofStrict​(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
      ローカル日付/時間、オフセット、およびゾーンIDの組合せを厳密に検証して、ZonedDateTimeのインスタンスを取得します。

      これは、指定されたゾーンのルールに従ってオフセットがローカル日付/時間にとって有効であることを保証する、ゾーン付き日付/時間を作成します。 オフセットが無効の場合は、例外がスローされます。

      パラメータ:
      localDateTime - ローカル日付/時間、nullでない
      offset - ゾーンオフセット。null以外
      zone - タイムゾーン、null以外
      戻り値:
      ゾーン付きの日付/時間、null以外
      例外:
      DateTimeException - 引数の組み合わせが無効な場合
    • from

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

      これは、指定された時間的オブジェクトに基づいてゾーン付き日付/時間を取得します。 TemporalAccessorは日付および時間情報の任意のセットを表し、このファクトリはこれをZonedDateTimeのインスタンスに変換します。

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

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

      パラメータ:
      temporal - 変換する一時オブジェクト、null以外
      戻り値:
      ゾーン付きの日付/時間、null以外
      例外:
      DateTimeException - ZonedDateTimeに変換できない場合
      関連項目:
      Chronology.zonedDateTime(TemporalAccessor)
    • parse

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

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

      パラメータ:
      text - 解析するテキスト(「2007-12-03T10:15:30+01:00[Europe/Paris]」など)、nullでない
      戻り値:
      解析されたゾーン付き日付/時間、nullでない
      例外:
      DateTimeParseException - テキストが解析できない場合
    • parse

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

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

      パラメータ:
      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)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。

      定義:
      isSupported 、インタフェース ChronoZonedDateTime<LocalDate>
      定義:
      インタフェース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)を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。

      定義:
      isSupported 、インタフェース ChronoZonedDateTime<LocalDate>
      定義:
      インタフェース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/グリニッジからのローカル日付/時間のオフセットです。

      定義:
      getOffset 、インタフェース ChronoZonedDateTime<LocalDate>
      戻り値:
      ゾーン・オフセット、null以外
    • withEarlierOffsetAtOverlap

      public ZonedDateTime withEarlierOffsetAtOverlap()
      ゾーン・オフセットを、ローカル時系列のオーバーラップ時における2つの有効なオフセットのうちの早い方に変更して、この日付/時間のコピーを返します。

      このメソッドは、秋の夏時間の切換え時など、ローカル時系列の重複時にのみ何らかの影響があります。 このシナリオでは、ローカル日付/時間に2つの有効なオフセットがあります。 このメソッドを呼び出すと、2つのうちの早い方が選択されて、ゾーン付きの日付/時間を返します。

      このメソッドが、重複していない場合に呼び出された場合、thisが返されます。

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

      定義:
      withEarlierOffsetAtOverlap 、インタフェース ChronoZonedDateTime<LocalDate>
      戻り値:
      先のオフセットでこの日付/時間に基づくZonedDateTime、nullでない
    • withLaterOffsetAtOverlap

      public ZonedDateTime withLaterOffsetAtOverlap()
      ゾーン・オフセットを、ローカル時系列のオーバーラップ時における2つの有効なオフセットのうちの遅い方に変更して、この日付/時間のコピーを返します。

      このメソッドは、秋の夏時間の切換え時など、ローカル時系列の重複時にのみ何らかの影響があります。 このシナリオでは、ローカル日付/時間に2つの有効なオフセットがあります。 このメソッドを呼び出すと、2つのうちの遅い方が選択されて、ゾーン付きの日付/時間を返します。

      このメソッドが、重複していない場合に呼び出された場合、thisが返されます。

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

      定義:
      withLaterOffsetAtOverlap 、インタフェース ChronoZonedDateTime<LocalDate>
      戻り値:
      後のオフセットでこの日付/時間に基づくZonedDateTime、nullでない
    • getZone

      public ZoneId getZone()
      Europe/Parisなど、タイムゾーンを取得します。

      これはゾーンIDを返します。 これは、UTC/グリニッジからのオフセットがいつどのように変化するかについて判定する、タイムゾーン・ルールを識別します。

      ゾーンIDはオフセットと同じ場合があります。 これが真の場合、タイムゾーン・ルールによって、今後の計算(加算や減算など)で複雑なエッジ・ケースがなくなります。 withFixedOffsetZone()も参照してください。

      定義:
      getZone 、インタフェース ChronoZonedDateTime<LocalDate>
      戻り値:
      タイムゾーン、nullでない
    • withZoneSameLocal

      public ZonedDateTime withZoneSameLocal​(ZoneId zone)
      可能であればローカル日付/時間を保持したまま、別のタイムゾーンを使って、この日付/時間のコピーを返します。

      このメソッドはタイムゾーンを変更し、ローカル日付/時間を保持します。 ローカル日付/時間は、新しいゾーンで無効な場合にのみ変更され、ofLocal(LocalDateTime, ZoneId, ZoneOffset)と同じ方法を使用して決定されます。

      ソーンを変更し、ローカル日付/時間を調整するには、withZoneSameInstant(ZoneId)を使用します。

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

      定義:
      withZoneSameLocal 、インタフェース ChronoZonedDateTime<LocalDate>
      パラメータ:
      zone - 変更先のタイムゾーン、null以外
      戻り値:
      要求されたゾーンでこの日付/時間に基づくZonedDateTime、nullでない
    • withZoneSameInstant

      public ZonedDateTime withZoneSameInstant​(ZoneId zone)
      インスタントを保持したまま、別のタイムゾーンを使ってこの日付/時間のコピーを返します。

      このメソッドはタイムゾーンを変更し、インスタントを保持します。 これは通常ローカル日付/時間に変更されます。

      このメソッドは、同じインスタントを保持することに基づくため、ローカル時系列のギャップと重複は結果に影響しません。

      ローカル時間を維持しながら、オフセットを変更するには、withZoneSameLocal(ZoneId)を使用します。

      定義:
      withZoneSameInstant 、インタフェース ChronoZonedDateTime<LocalDate>
      パラメータ:
      zone - 変更先のタイムゾーン、null以外
      戻り値:
      要求されたゾーンでこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 結果がサポートされている日付範囲を超える場合
    • withFixedOffsetZone

      public ZonedDateTime withFixedOffsetZone()
      ゾーンIDをオフセットに設定して、この日付/時間のコピーを返します。

      これは、ゾーンIDがgetOffset()と同じゾーン付き日付/時間を返します。 結果のローカル日付/時間、オフセットおよびインスタントは、この日付/時間でのものと同じになります。

      日付/時間を固定された単一オフセットに設定することは、今後の計算(加算や減算など)でタイムゾーン・ルールによる複雑なエッジ・ケースがないことを意味します。 これは、ほとんどのプロトコル(ISO-8601など)が地域ベース・ゾーンIDを処理せずオフセットのみを処理するため、ゾーン付き日付/時間をネットワーク経由で送信するときに役立つこともあります。

      これはZonedDateTime.of(zdt.toLocalDateTime(), zdt.getOffset())と同等です。

      戻り値:
      ゾーンIDがオフセットに設定されたZonedDateTime、nullでない
    • toLocalDateTime

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

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

      定義:
      toLocalDateTime 、インタフェース ChronoZonedDateTime<LocalDate>
      戻り値:
      この日付/時間のローカル日付/時間部分、null以外
    • toLocalDate

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

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

      定義:
      toLocalDate 、インタフェース ChronoZonedDateTime<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を返します。

      定義:
      toLocalTime 、インタフェース ChronoZonedDateTime<LocalDate>
      戻り値:
      日付/時間の時間部分、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 ZonedDateTime with​(TemporalAdjuster adjuster)
      この日付/時間の調整済のコピーを返します。

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

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

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

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

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

        result = zonedDateTime.with(date);
        result = zonedDateTime.with(time);
       

      ZoneOffsetTemporalAdjusterを実装しますが、これを引数として使用しても一般的に効果はありません。 ZonedDateTimeのオフセットは主にタイムゾーンによって制御されます。 つまり、オフセットを変更することは一般的に意味を持ちません。ローカル日付/時間およびゾーンにとって有効なオフセットは1つだけであるためです。 ゾーン付き日付/時間がサマー・タイム重複内の場合、オフセットは2つの有効オフセットを切り替えるために使用されます。 他のすべてのケースで、オフセットは無視されます。

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

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

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

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

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

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

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

      INSTANT_SECONDSフィールドは、指定されたインスタントを使って日付/時間を返します。 ゾーンと「1秒のうちのナノ秒」は変更されません。 結果は、新しいインスタントおよび元のゾーンから派生するオフセットを持ちます。 新しいインスタント値が有効な範囲外にある場合は、DateTimeExceptionがスローされます。

      OFFSET_SECONDSフィールドは一般的に無視されます。 ZonedDateTimeのオフセットは主にタイムゾーンによって制御されます。 つまり、オフセットを変更することは一般的に意味を持ちません。ローカル日付/時間およびゾーンにとって有効なオフセットは1つだけであるためです。 ゾーン付き日付/時間がサマー・タイム重複内の場合、オフセットは2つの有効オフセットを切り替えるために使用されます。 他のすべてのケースで、オフセットは無視されます。 新しいオフセット値が有効な範囲外にある場合は、DateTimeExceptionがスローされます。

      その他のサポートされているフィールドは、LocalDateTime上の一致するメソッドのとおりに動作します。 ゾーンは計算に含まれず、変更されません。 ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の年を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      year - 結果に設定される年(MIN_YEARからMAX_YEARまで)
      戻り値:
      要求された年でこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 年の値が無効である場合
    • withMonth

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の月を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      month - 結果に設定される月。1(1月)-12(12月)
      戻り値:
      要求された月でこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 月の値が無効である場合
    • withDayOfMonth

      public ZonedDateTime withDayOfMonth​(int dayOfMonth)
      日の値を変更して、このZonedDateTimeのコピーを返します。

      これは、ローカル時系列に対して作用し、ローカル日付/時間の月の日を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の年の日を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      dayOfYear - 結果に設定される「年の日」。1から365-366まで
      戻り値:
      要求された日でこの日付に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 「年の日」の値が無効である場合、または「年の日」がその年に対して無効である場合
    • withHour

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の時間を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      hour - 結果に設定される時(0-23)
      戻り値:
      要求された時でこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 時の値が無効である場合
    • withMinute

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の時間を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      minute - 結果に設定される分(0-59)
      戻り値:
      要求された分でこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 分の値が無効である場合
    • withSecond

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の時間を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      second - 結果に設定される秒(0-59)
      戻り値:
      要求された秒でこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - 秒の値が無効である場合
    • withNano

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間の時間を変更します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

      パラメータ:
      nanoOfSecond - 結果に設定されるナノ秒(0-999,999,999)
      戻り値:
      要求されたナノ秒でこの日付/時間に基づくZonedDateTime、nullでない
      例外:
      DateTimeException - ナノ秒の値が無効である場合
    • truncatedTo

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

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

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

      これは、ローカル時系列に対して作用し、基礎となるローカル日付/時間を切り捨てます これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

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

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

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

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

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

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

      フィールドがChronoUnitの場合は、加算はここで実装されます。 ゾーンは計算には含まれず、結果で変更されません。 日付および時間の単位のための計算は異なります。

      日付単位はローカル時系列に対して作用します。 最初に期間がローカル日付/時間に加算されてから、ゾーンIDを使用してゾーン付き日付/時間に戻されます。 変換は、加算前にオフセット付きのofLocal(LocalDateTime, ZoneId, ZoneOffset)を使用します。

      時間単位はインスタント時系列に対して作用します。 最初に期間がローカル日付/時間に加算されてから、ゾーンIDを使用してゾーン付き日付/時間に戻されます。 変換は、加算前にオフセット付きのofInstant(LocalDateTime, ZoneOffset, ZoneId)を使用します。

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

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に年を加算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に月を加算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に週を加算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に日を加算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、1時間の加算が常に1時間後のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1時間でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なるため、1日の加算は24時間の加算と同じではないことに注意してください。

      たとえば、'Europe/Paris'のようなタイムゾーンを考えてみましょう。ここで、秋のDSTカットオーバーは、ローカル時間02:00〜02:59が夏のオフセット+02:00から冬の+01:00に2回変化することを意味します。

      • 1時間を01:30+02:00に追加すると、02:30+02:00となります。(両方とも夏時間)
      • 02:30+02:00に1時間を追加すると、02:30+01:00になります。(夏時間から冬時間に移動)
      • 02:30+01:00に1時間を追加すると、03:30+01:00になります。(両方とも冬時間)
      • 01:30+02:00に3時間を追加すると、03:30+01:00になります。(夏時間から冬時間に移動)

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

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

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

      これは、1分間の加算が常に1分間後のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1分間でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なることに注意してください。

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

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

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

      これは、1秒の加算が常に1秒後のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1秒でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なることに注意してください。

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

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

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

      これは、1ナノ秒の加算が常に1ナノ秒後のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1ナノ秒でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なることに注意してください。

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

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

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

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

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

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

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

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

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

      日付および時間の単位のための計算は異なります。

      日付単位はローカル時系列に対して作用します。 最初に期間がローカル日付/時間から減算されてから、ゾーンIDを使用してゾーン付き日付/時間に戻されます。 変換は、減算前にオフセット付きのofLocal(LocalDateTime, ZoneId, ZoneOffset)を使用します。

      時間単位はインスタント時系列に対して作用します。 最初に期間がローカル日付/時間から減算されてから、ゾーンIDを使用してゾーン付き日付/時間に戻されます。 変換は、減算前にオフセット付きのofInstant(LocalDateTime, ZoneOffset, ZoneId)を使用します。

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

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に年を減算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に月を減算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に週を減算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、ローカル時系列に対して作用し、ローカル日付/時間に日を減算します これはそれから、オフセットを取得するためのゾーンIDを使用して、ZonedDateTimeに戻されます。

      ZonedDateTimeに戻したときに、ローカル日付/時間が重複内の場合は、オフセットは可能な場合は保持され、それ以外の場合は先のオフセットが使用されます。 ギャップ内の場合は、ローカル日付/時間がギャップの長さ分前方に調整されます。

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

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

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

      これは、1時間の減算が常に1時間前のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1時間でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なるため、1日の減算は24時間の加算と同じではないことに注意してください。

      たとえば、'Europe/Paris'のようなタイムゾーンを考えてみましょう。ここで、秋のDSTカットオーバーは、ローカル時間02:00〜02:59が夏のオフセット+02:00から冬の+01:00に2回変化することを意味します。

      • 03:30+01:00から1時間を引くと、02:30+01:00となります。(両方とも冬時間)
      • 02:30+01:00から1時間を引いた場合、02:30+02:00となります。(冬時間から夏時間に移動)
      • 02:30+02:00から1時間を引くと、01:30+02:00となります。(両方とも夏時間)
      • 03:30+01:00から3時間を引くと、01:30+02:00となります。(冬時間から夏時間に移動)

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

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

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

      これは、1分の減算が常に1分間前のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1分間でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なることに注意してください。

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

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

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

      これは、1秒の減算が常に1秒前のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1秒でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なることに注意してください。

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

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

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

      これは、1ナノ秒の減算が常に1ナノ秒前のデュレーションになるように、インスタント時系列に対して作用します。 これにより、ローカル日付/時間が1ナノ秒でない量分変わる場合があります。 この方法は日、月および年で使用される方法とは異なることに注意してください。

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

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

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

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

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

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

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

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

      このメソッドに渡されたTemporalは、from(TemporalAccessor)を使用してZonedDateTimeに変換されます。 タイムゾーンが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値は例外をスローします。

      日付および時間の単位のための計算は異なります。

      日付単位はローカル日付/時間を使用して、ローカル時系列に対して作用します。 たとえば、1日の正午から次の日の正午までの期間(日数)は、サマー・タイムの変更があったかどうかに関係なく、常に正確に1日としてカウントされます。

      時間単位はインスタント時系列に対して作用します。 計算は、実際には両方のゾーン付き日付/時間をインスタントに変換してから、インスタント間の期間を計算します。 たとえば、1日の正午から次の日の正午までの期間(時数)は、サマー・タイムの変更があったかどうかに応じて、23、24または25時間(あるいはなんらかの他の量)になります。

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

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

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

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

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

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

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

      これは、ローカル日付/時間とオフセットを使用してオフセット日付/時間を作成します。 ゾーンIDは無視されます。

      戻り値:
      同じローカル日付/時間およびオフセットを表すオフセット日付/時間、nullでない
    • equals

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

      比較はオフセットの日付/時間とゾーンに基づきます。 ZonedDateTime型のオブジェクトのみが比較され、それ以外の型はfalseを返します。

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

      public int hashCode()
      この日付/時間のハッシュ・コード。
      定義:
      hashCode 、インタフェース ChronoZonedDateTime<LocalDate>
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      適切なハッシュ・コード
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • toString

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

      フォーマットはLocalDateTimeとそれに続くZoneOffsetで構成されます。 ZoneIdがオフセットと同じでない場合は、IDが出力されます。 オフセットとIDが同じ場合は、出力はISO-8601と互換性があります。

      定義:
      toString 、インタフェース ChronoZonedDateTime<LocalDate>
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      この日付/時間の文字列表現、null以外