- すべての実装されたインタフェース:
Serializable,Comparable<OffsetDateTime>,Temporal,TemporalAccessor,TemporalAdjuster
2007-12-03T10:15:30+01:00など)。
OffsetDateTimeは、オフセットを使った日付/時間の不変の表現です。 このクラスでは、UTC/グリニッジからのオフセットの他に、すべての日付と時間のフィールドをナノ秒の精度まで格納します。 たとえば、値"2007年10月2日13:45:30.123456789 +02:00"はOffsetDateTimeに格納できます。
OffsetDateTime、ZonedDateTime、およびInstantはすべて、時系列上のインスタントをナノ秒の精度まで格納します。 Instantはもっとも単純で、単にインスタントを表します。 OffsetDateTimeは、UTC/グリニッジからのオフセットをインスタントに加算して、ローカル日付/時間を取得できるようにします。 ZonedDateTimeは完全なタイムゾーン・ルールを追加します。
ZonedDateTimeまたはInstantはより単純なアプリケーションのデータのモデル化に使用するよう意図されています。 このクラスは、日付/時間の概念をより詳細にモデル化する場合や、データベースとの通信またはネットワーク・プロトコルでの通信を行う場合に使用できます。
これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 比較する場合は、equalsメソッドを使用することをお薦めします。
- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final OffsetDateTimeサポートされている最大のOffsetDateTimeである「+999999999-12-31T23:59:59.999999999-18:00」。static final OffsetDateTimeサポートされている最小のOffsetDateTimeである「-999999999-01-01T00:00:00+18:00」。 -
メソッドのサマリー
修飾子と型メソッド説明adjustInto(Temporal temporal) 指定された時間的オブジェクトを、このオブジェクトと同じオフセット、日付、および時間を持つように調整します。atZoneSameInstant(ZoneId zone) 結果に同じインスタントが含まれるようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTimeを作成します。atZoneSimilarLocal(ZoneId zone) 同じローカルの日付と時間を保持するようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTimeを作成します。intcompareTo(OffsetDateTime other) この日付/時間を別の日付/時間と比較します。booleanこの日付/時間が別の日付/時間と等しいかどうかをチェックします。format(DateTimeFormatter formatter) 指定されたフォーマッタを使用してこの日付/時間を書式設定します。static OffsetDateTimefrom(TemporalAccessor temporal) 時間的オブジェクトからOffsetDateTimeのインスタンスを取得します。intget(TemporalField field) 指定されたフィールドの値をこの日付/時間からintとして取得します。int「月の日」フィールドを取得します。列挙型DayOfWeekである曜日フィールドを取得します。int「年の日」フィールドを取得します。intgetHour()時フィールドを取得します。longgetLong(TemporalField field) 指定されたフィールドの値をこの日付/時間からlongとして取得します。int分フィールドを取得します。getMonth()列挙型Monthを使用して、月フィールドを取得します。int月フィールドを取得します(1-12)。intgetNano()ナノ秒フィールドを取得します。「+01:00」などのゾーン・オフセットを取得します。int秒フィールドを取得します。intgetYear()年フィールドを取得します。inthashCode()この日付/時間のハッシュ・コード。booleanisAfter(OffsetDateTime other) この日付/時間のインスタントが、指定された日付/時間のインスタントより後であるかどうかをチェックします。booleanisBefore(OffsetDateTime other) この日付/時間のインスタントが、指定された日付/時間のインスタントより前であるかどうかをチェックします。booleanisEqual(OffsetDateTime other) この日付/時間のインスタントが、指定された日付/時間のインスタントと等しいかどうかをチェックします。booleanisSupported(TemporalField field) 指定されたフィールドがサポートされているかどうかをチェックします。booleanisSupported(TemporalUnit unit) 指定された単位がサポートされているかどうかをチェックします。minus(long amountToSubtract, TemporalUnit unit) 指定された量を減算した、この日付/時間のコピーを返します。minus(TemporalAmount amountToSubtract) 指定された量を減算した、この日付/時間のコピーを返します。minusDays(long days) 指定された日数を減算して、このOffsetDateTimeのコピーを返します。minusHours(long hours) 指定された時間数を減算して、このOffsetDateTimeのコピーを返します。minusMinutes(long minutes) 指定された分数を減算して、このOffsetDateTimeのコピーを返します。minusMonths(long months) 指定された月数を減算して、このOffsetDateTimeのコピーを返します。minusNanos(long nanos) 指定されたナノ秒数を減算して、このOffsetDateTimeのコピーを返します。minusSeconds(long seconds) 指定された秒数を減算して、このOffsetDateTimeのコピーを返します。minusWeeks(long weeks) 指定された週数を減算して、このOffsetDateTimeのコピーを返します。minusYears(long years) 指定された年数を減算して、このOffsetDateTimeのコピーを返します。static OffsetDateTimenow()デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。static OffsetDateTime指定されたクロックから現在の日付/時間を取得します。static OffsetDateTime指定されたタイムゾーンのシステム・クロックから現在の日付/時間を取得します。static OffsetDateTimeof(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset) 年、月、日、時、分、秒、ナノ秒、およびオフセットからOffsetDateTimeのインスタンスを取得します。static OffsetDateTimeof(LocalDate date, LocalTime time, ZoneOffset offset) 日付、時間、およびオフセットからOffsetDateTimeのインスタンスを取得します。static OffsetDateTimeof(LocalDateTime dateTime, ZoneOffset offset) 日付/時間およびオフセットからOffsetDateTimeのインスタンスを取得します。static OffsetDateTimeInstantおよびゾーンIDからOffsetDateTimeのインスタンスを取得します。static OffsetDateTimeparse(CharSequence text) 2007-12-03T10:15:30+01:00などのテキスト文字列からOffsetDateTimeのインスタンスを取得します。static OffsetDateTimeparse(CharSequence text, DateTimeFormatter formatter) 特定のフォーマッタを使用して、テキスト文字列からOffsetDateTimeのインスタンスを取得します。plus(long amountToAdd, TemporalUnit unit) 指定された量を加算した、この日付/時間のコピーを返します。plus(TemporalAmount amountToAdd) 指定された量を加算した、この日付/時間のコピーを返します。plusDays(long days) 指定された日数を加算して、このOffsetDateTimeのコピーを返します。plusHours(long hours) 指定された時間数を加算して、このOffsetDateTimeのコピーを返します。plusMinutes(long minutes) 指定された分数を加算して、このOffsetDateTimeのコピーを返します。plusMonths(long months) 指定された月数を加算して、このOffsetDateTimeのコピーを返します。plusNanos(long nanos) 指定されたナノ秒数を加算して、このOffsetDateTimeのコピーを返します。plusSeconds(long seconds) 指定された秒数を加算して、このOffsetDateTimeのコピーを返します。plusWeeks(long weeks) 指定された週数を加算して、このOffsetDateTimeのコピーを返します。plusYears(long years) 指定された年数を加算して、このOffsetDateTimeのコピーを返します。<R> Rquery(TemporalQuery<R> query) 指定された問合せを使用してこの日付/時間を問い合わせます。range(TemporalField field) 指定されたフィールドの有効な値の範囲を取得します。static Comparator<OffsetDateTime> そのインスタントにのみ基づいて2つのOffsetDateTimeインスタンスを比較するコンパレータを取得します。longこの日付/時間を、エポック(1970-01-01T00:00:00Z)からの秒数に変換します。この日付/時間をInstantに変換します。この日付/時間のLocalDate部分を取得します。この日付/時間のLocalDateTime部分を取得します。この日付/時間のLocalTime部分を取得します。この日付/時間をOffsetTimeに変換します。toString()この日付/時間をStringとして出力します(2007-12-03T10:15:30+01:00など)。オフセットをゾーンIDとして使用して、この日付/時間をZonedDateTimeに変換します。truncatedTo(TemporalUnit unit) 時間が切り捨てられた、このOffsetDateTimeのコピーを返します。longuntil(Temporal endExclusive, TemporalUnit unit) もう一方の日付/時間までの時間量を指定された単位で計算します。with(TemporalAdjuster adjuster) この日付/時間の調整済のコピーを返します。with(TemporalField field, long newValue) 指定されたフィールドを新しい値に設定して、この日付/時間のコピーを返します。withDayOfMonth(int dayOfMonth) 「月の日」を変更して、このOffsetDateTimeのコピーを返します。withDayOfYear(int dayOfYear) 「年の日」を変更して、このOffsetDateTimeのコピーを返します。withHour(int hour) 時の値を変更して、このOffsetDateTimeのコピーを返します。withMinute(int minute) 分の値を変更して、このOffsetDateTimeのコピーを返します。withMonth(int month) 月を変更して、このOffsetDateTimeのコピーを返します。withNano(int nanoOfSecond) ナノ秒の値を変更して、このOffsetDateTimeのコピーを返します。withOffsetSameInstant(ZoneOffset offset) 結果が同じインスタントを持つようにしながら、指定されたオフセットを使って、このOffsetDateTimeのコピーを返します。withOffsetSameLocal(ZoneOffset offset) 結果がローカル日付/時間を持つようにしながら、指定されたオフセットを使って、このOffsetDateTimeのコピーを返します。withSecond(int second) 秒の値を変更して、このOffsetDateTimeのコピーを返します。withYear(int year) 年を変更して、このOffsetDateTimeのコピーを返します。
-
フィールド詳細
-
MIN
public static final OffsetDateTime MINサポートされている最小のOffsetDateTimeである「-999999999-01-01T00:00:00+18:00」。 これは、最大オフセット(オフセットが大きくなるほど、時系列上では早くなる)での最小日付の開始時の午前零時のローカル日付/時間です。 これは、LocalDateTime.MINとZoneOffset.MAXを組み合せます。 これは、アプリケーションによって「遠い過去」の日付/時間として使用されることがあります。 -
MAX
public static final OffsetDateTime MAXサポートされている最大のOffsetDateTimeである「+999999999-12-31T23:59:59.999999999-18:00」。 これは、最小オフセット(負のオフセットが大きくなるほど、時系列上では遅くなる)での最大日付の終わりの午前零時直前のローカル日付/時間です。 これは、LocalDateTime.MAXとZoneOffset.MINを組み合せます。 これは、アプリケーションによって「遠い将来」の日付/時間として使用されることがあります。
-
-
メソッドの詳細
-
timeLineOrder
public static Comparator<OffsetDateTime> timeLineOrder()そのインスタントにのみ基づいて2つのOffsetDateTimeインスタンスを比較するコンパレータを取得します。このメソッドは、ベースとなるインスタントのみを比較するという点で、
compareTo(java.time.OffsetDateTime)での比較とは異なります。- 戻り値:
- 時系列順に比較するコンパレータ
- 関連項目:
-
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,999offset- ゾーンオフセット。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の場合、
range、get、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。フィールドが
ChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。NANO_OF_SECONDNANO_OF_DAYMICRO_OF_SECONDMICRO_OF_DAYMILLI_OF_SECONDMILLI_OF_DAYSECOND_OF_MINUTESECOND_OF_DAYMINUTE_OF_HOURMINUTE_OF_DAYHOUR_OF_AMPMCLOCK_HOUR_OF_AMPMHOUR_OF_DAYCLOCK_HOUR_OF_DAYAMPM_OF_DAYDAY_OF_WEEKALIGNED_DAY_OF_WEEK_IN_MONTHALIGNED_DAY_OF_WEEK_IN_YEARDAY_OF_MONTHDAY_OF_YEAREPOCH_DAYALIGNED_WEEK_OF_MONTHALIGNED_WEEK_OF_YEARMONTH_OF_YEARPROLEPTIC_MONTHYEAR_OF_ERAYEARERAINSTANT_SECONDSOFFSET_SECONDS
ChronoFieldインスタンスはfalseを返します。フィールドが
ChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。- 定義:
- インタフェース
TemporalAccessorのisSupported - パラメータ:
field- チェックするフィールド、nullはfalseを返す- 戻り値:
- フィールドがこの日付/時間でサポートされている場合はtrue、サポートされていない場合はfalse
-
isSupported
public boolean isSupported(TemporalUnit unit) 指定された単位がサポートされているかどうかをチェックします。これは、指定された単位をこの日付/時間に対して加算または減算できるかどうかをチェックします。 falseの場合、
plus(long, TemporalUnit)およびminusメソッドの呼び出しは、例外をスローします。単位が
ChronoUnitの場合、問合せはここで実装されます。 サポートされる単位は次のとおりです。NANOSMICROSMILLISSECONDSMINUTESHOURSHALF_DAYSDAYSWEEKSMONTHSYEARSDECADESCENTURIESMILLENNIAERAS
ChronoUnitインスタンスはfalseを返します。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.isSupportedBy(Temporal)を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。- 定義:
- インタフェース
TemporalのisSupported - パラメータ:
unit- チェックする単位、nullはfalseを返す- 戻り値:
- 単位を加算/減算できる場合はtrue、できない場合はfalse
-
range
public ValueRange range(TemporalField field) 指定されたフィールドの有効な値の範囲を取得します。範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この日付/時間は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのrange - パラメータ:
field- 範囲を問い合わせるフィールド、null以外- 戻り値:
- フィールドの有効値の範囲。null以外
- 例外:
DateTimeException- フィールドの範囲を取得できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合
-
get
public int get(TemporalField field) 指定されたフィールドの値をこの日付/時間からintとして取得します。これは、指定されたフィールドの値についてこの日付/時間に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。supported fieldsは、この日時に基づいて有効な値を返します。ただし、NANO_OF_DAY,MICRO_OF_DAY,EPOCH_DAY,PROLEPTIC_MONTHおよびINSTANT_SECONDSは大きすぎてintに収まらないため、UnsupportedTemporalTypeExceptionをスローします。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのget - パラメータ:
field- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- 例外:
DateTimeException- フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合、または値の範囲がintを超えている場合ArithmeticException- 数値のオーバーフローが発生した場合
-
getLong
public long getLong(TemporalField field) 指定されたフィールドの値をこの日付/時間からlongとして取得します。これは、指定されたフィールドの値についてこの日付/時間に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは、この日付/時間に基づく有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのgetLong - パラメータ:
field- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- 例外:
DateTimeException- フィールドの値を取得できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
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
-
getDayOfMonth
public int getDayOfMonth()「月の日」フィールドを取得します。このメソッドは、「月の日」を表すプリミティブな
int値を返します。- 戻り値:
- 「月の日」(1-31)
-
getDayOfYear
public int getDayOfYear()「年の日」フィールドを取得します。このメソッドは、「年の日」を表すプリミティブな
int値を返します。- 戻り値:
- 「年の日」。1-365または1-366(うるう年の場合)
-
getDayOfWeek
-
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で指定します。 これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。 主要な日付/時間クラス(MonthやMonthDayなど)も、TemporalAdjusterインタフェースを実装します。 アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。たとえば、このコードでは7月の最後の日の日付を返します。
import static java.time.Month.*; import static java.time.temporal.TemporalAdjusters.*; result = offsetDateTime.with(JULY).with(lastDayOfMonth());
クラス
LocalDate、LocalTime、およびZoneOffsetはTemporalAdjusterを実装するため、このメソッドを使用すると、日付、時間、またはオフセットを変更できます。result = offsetDateTime.with(date); result = offsetDateTime.with(time); result = offsetDateTime.with(offset);
このメソッドの結果は、指定されたアジャスタで
thisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのwith - パラメータ:
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)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのwith - パラメータ:
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のコピーを返します。切り詰めでは、指定された単位よりも小さいフィールドをゼロに設定して、元の日付/時間のコピーを返します。 たとえば、
分単位で切り詰めると、秒およびナノ秒フィールドはゼロに設定されます。単位は、標準日の長さを余りなしで等分するデュレーションを持つ必要があります。 これには、
ChronoUnitとDAYSで提供されるすべての時間単位が含まれます。 他の単位は例外をスローします。オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
unit- 切り捨てを行う単位、nullでない- 戻り値:
- 時間が切り捨てられた、この日付/時間に基づく
OffsetDateTime。null以外 - 例外:
DateTimeException- 切り捨てられない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合
-
plus
public OffsetDateTime plus(TemporalAmount amountToAdd) 指定された量を加算した、この日付/時間のコピーを返します。これは、指定された量を加算して、この日付/時間に基づく
OffsetDateTimeを返します。 この量は通常PeriodまたはDurationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのplus - パラメータ:
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)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 結果に加算する単位の量、負も可unit- 加算する量の単位、nullでない- 戻り値:
- 指定された量が加算された、この日付/時間に基づく
OffsetDateTime。null以外 - 例外:
DateTimeException- 加算できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plusYears
public OffsetDateTime plusYears(long years) 指定された年数を加算して、このOffsetDateTimeのコピーを返します。このメソッドは、3つのステップで、指定された量を年フィールドに加算します。
- 入力された年数を年フィールドに加算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2008-02-29 (うるう年)に1年を加算すると、2009-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2009-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
years- 加算する年数。負の値の場合もある- 戻り値:
- その年数が加算された、この日付/時間に基づく
OffsetDateTime。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
plusMonths
public OffsetDateTime plusMonths(long months) 指定された月数を加算して、このOffsetDateTimeのコピーを返します。このメソッドは、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)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 減算する量、nullでない- 戻り値:
- 減算が行われた、この日付/時間に基づく
OffsetDateTime。null以外 - 例外:
DateTimeException- 減算ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minus
public OffsetDateTime minus(long amountToSubtract, TemporalUnit unit) 指定された量を減算した、この日付/時間のコピーを返します。これは、その単位での量を減算して、この日付/時間に基づく
OffsetDateTimeを返します。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。このメソッドは、量を符号反転した
plus(long, TemporalUnit)と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 結果から減算する単位の量、負も可unit- 減算する量の単位、nullでない- 戻り値:
- 指定された量が減算された、この日付/時間に基づく
OffsetDateTime。null以外 - 例外:
DateTimeException- 減算ができない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minusYears
public OffsetDateTime minusYears(long years) 指定された年数を減算して、このOffsetDateTimeのコピーを返します。このメソッドは、3つのステップで、指定された量を年フィールドから減算します。
- 入力された年数を年フィールドから減算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2008-02-29 (うるう年)から1年を減算すると、2007-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
years- 減算する年数。負の値の場合もある- 戻り値:
- その年数が減算された、この日付/時間に基づく
OffsetDateTime。null以外 - 例外:
DateTimeException- 結果がサポートされている日付範囲を超える場合
-
minusMonths
public OffsetDateTime minusMonths(long months) 指定された月数を減算して、このOffsetDateTimeのコピーを返します。このメソッドは、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)メソッドを呼び出すことによって取得します。- 定義:
- インタフェース
TemporalAccessorのquery - 型パラメータ:
R- 結果の型- パラメータ:
query- 呼び出す問合せ、null以外- 戻り値:
- 問合せ結果、nullが返されることがある(問合せによって定義される)
- 例外:
DateTimeException- 問い合わせできない場合(問合せによって定義される)ArithmeticException- 数値のオーバーフローが発生した場合(問合せによって定義される)
-
adjustInto
指定された時間的オブジェクトを、このオブジェクトと同じオフセット、日付、および時間を持つように調整します。これは、オフセット、日付、および時間をこれと同じになるように変更して、入力と同じ識別可能な型の時間的オブジェクトを返します。
この調整は、
ChronoField.EPOCH_DAY、ChronoField.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);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
TemporalAdjusterのadjustInto - パラメータ:
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のこのメソッドに実装します。 サポートされている単位は、NANOS、MICROS、MILLIS、SECONDS、MINUTES、HOURS、HALF_DAYS、DAYS、WEEKS、MONTHS、YEARS、DECADES、CENTURIES、MILLENNIA、およびERASです。 その他のChronoUnit値は例外をスローします。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのuntil - パラメータ:
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と一致」しています。たとえば、以下はコンパレータの順序です。
2008-12-03T10:30+01:002008-12-03T11:00+01:002008-12-03T12:00+02:002008-12-03T11:30+01:002008-12-03T12:00+01:002008-12-03T12:30+01:00
equals()と矛盾しないようにするために必要です。- 定義:
compareTo、インタフェースComparable<OffsetDateTime>- パラメータ:
other- 他の比較する日付/時間、null以外- 戻り値:
- コンパレータ値、つまり、
otherの即時との比較(等しくない場合)、およびotherの即時と等しい場合は、otherのローカル日時を比較 - 関連項目:
-
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を返します。 -
hashCode
-
toString
public String toString()この日付/時間をStringとして出力します(2007-12-03T10:15:30+01:00など)。出力は次の形式のいずれかになります:
uuuu-MM-dd'T'HH:mmXXXXXuuuu-MM-dd'T'HH:mm:ssXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
-