クラスInstant
- すべての実装されたインタフェース:
Serializable,Comparable<Instant>,Temporal,TemporalAccessor,TemporalAdjuster
このクラスは時系列上の単一時点をモデル化します。 これは、イベントタイムスタンプをアプリケーションに記録するために使用できます。
インスタントの範囲は、longよりも大きな秒数の保存を必要とします。 これを実現するために、このクラスはエポック秒を表すlongと、「1秒のうちのナノ秒」を表すint(常に0と999,999,999の間になる)を保存します。 エポック秒は、標準Javaエポック (1970-01-01T00:00:00Z) から測定されます。エポック後のインスタントは正の値を持ち、エポック前のインスタントは負の値を持ちます。 エポック秒とナノ秒の部分では、大きな値は小さな値よりも時系列上で常に後になります。
タイムスケール
人間が時間を測定する標準手段は太陽日の長さです。 この長さは伝統的に、24時間/60分/60秒に分割されてきました(86400秒/日)。
現代の計時は、セシウム原子の遷移を基準としてSI秒を正確に定義する原子時計に基づいています。 SI秒の長さは1日の86400分の1に非常に近くなるように定義されました。
残念なことに、地球が回転すると1日の長さは変わります。 さらに、時間の経過とともに地球の速度が遅くなり、1日の平均の長さが長くなりつつあります。 その結果、2012年の太陽日の長さは86400 SI秒より若干長いです。 任意の特定日の実際の長さと地球の速度が遅くなる時間量は予測できず、測定によってのみ決定できます。 UT1タイム・スケールは1日の正確な長さを計算し、その日が終わった後一定期間のみ使用できます。
UTCタイム・スケールは、UT1の1秒未満の時間をまとめて整数秒(うるう秒と呼ばれる)にする標準アプローチです。 うるう秒は地球の回転の変化に応じて追加または削除されます。 つまり、UTCは、1日を太陽と整合させるために、必要に応じて1日が86399 SI秒または86401 SI秒であることを許可します。
現代のUTCタイム・スケールは、1972年に導入されたもので、整数うるう秒の概念を導入しました。 1958年から1972年の間はUTCの定義は複雑で、概念上の秒の長さに対して秒未満の小さな調整を行っていました。 2012年現在は、UTCの定義をさらに変更する協議が進行中です。うるう秒が廃止されたり、ほかの変更が導入される可能性もあります。
これまで説明してきたように、正確な計時は複雑なことを考慮して、このJava APIでは独自のタイム・スケール(Javaタイム・スケール)を定義します。
Javaタイム・スケールでは、各暦日を正確に86400下位区分(秒と呼ばれます)に分割します。 これらの秒はSI秒と異なる場合があります。 デファクト国際民間タイム・スケールと厳密に一致し、その定義は随時変わります。
Javaタイム・スケールには、民間時間のベースとして使用されるコンセンサス国際タイム・スケールに基づいて、わずかに異なる定義を持つ時系列セグメントが存在します。 国際的に合意されたタイム・スケールが変更または置換されるたびに、そのための新しいJavaタイム・スケール・セグメントが定義される必要があります。 各セグメントはこれらの要件を満たす必要があります。
- Javaタイム・スケールは、基礎となる国際民間タイム・スケールと厳密に一致する。
- Javaタイム・スケールは、国際民間タイム・スケールと毎正午に正確に一致する。
- Javaタイム・スケーツは、国際民間タイム・スケールに対する正確に定義された関係を持つ。
1972年11月3日(これから説明する正確な境界)からのセグメントの場合、別途通知があるまでコンセンサス国際タイム・スケールはUTC(うるう秒を使用)です。 このセグメントでは、Javaタイム・スケールはUTC-SLSと同一です。 これは、うるう秒のない日ではUTCと同一です。 うるう秒がある日では、うるう秒がその日の最後の1000秒に均等に分散され、表面上は厳密に86400秒/日のままです。
1972年11月03日より前のセグメントの場合、任意の遠い過去にさかのぼって、コンセンサス国際タイム・スケールはUT1であるように定義され、先発的に適用されます。グリニッジ子午線上の(平均)太陽時と同等です。 このセグメントでは、Javaタイム・スケールはコンセンサス国際タイム・スケールと同一です。 2つのセグメントの間の正確な境界は、1972-11-03T00:00と1972-11-04T12:00との間の、UT1 = UTCであるインスタントです。
JSR-310 APIを使用するJavaタイム・スケールの実装は、1秒未満まで正確であるクロックや、単調または滑らかに進むクロックを提供することは求められません。 したがって実装は、実際にUTC-SLS slewを実行する必要はなく、そうでない場合でもうるう秒を意識する必要はありません。 ただし、JSR-310は、現在のインスタントを表現するクロックを定義するときに使用するアプローチを実装がドキュメント化する必要があることを求めています。 使用可能なクロックの詳細については、Clockを参照してください。
Javaタイム・スケールはすべての日付/時間クラスで使用されます。 これにはInstant、LocalDate、LocalTime、OffsetDateTime、ZonedDateTimeおよびDurationが含まれます。
これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 比較する場合は、equalsメソッドを使用することをお薦めします。
- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
-
フィールドのサマリー
フィールド -
メソッドのサマリー
修飾子と型メソッド説明adjustInto(Temporal temporal) 指定された時間的オブジェクトがこのインスタントを持つように調整します。atOffset(ZoneOffset offset) このインスタントとオフセットを組み合わせてOffsetDateTimeを作成します。このインスタントとタイムゾーンを組み合わせてZonedDateTimeを作成します。intこのインスタントと指定されたインスタントを比較します。boolean指定されたインスタントとこのインスタントが等しいかどうかをチェックします。static Instantfrom(TemporalAccessor temporal) Instantのインスタンスを時間的オブジェクトから取得します。intget(TemporalField field) 指定されたフィールドの値をこのインスタントからintとして取得します。longJavaエポック1970-01-01T00:00:00Zからの秒数を取得します。longgetLong(TemporalField field) 指定されたフィールドの値をこのインスタントからlongとして取得します。intgetNano()秒の始まりから時系列の後の方へのナノ秒数を取得します。inthashCode()このインスタントのハッシュ・コードを返します。booleanこのインスタントが指定されたインスタントの後かどうかをチェックします。booleanこのインスタントが指定されたインスタントの前かどうかをチェックします。booleanisSupported(TemporalField field) 指定されたフィールドがサポートされているかどうかをチェックします。booleanisSupported(TemporalUnit unit) 指定された単位がサポートされているかどうかをチェックします。minus(long amountToSubtract, TemporalUnit unit) このインスタントのコピーから指定された量を引いたものを返します。minus(TemporalAmount amountToSubtract) このインスタントのコピーから指定された量を引いたものを返します。minusMillis(long millisToSubtract) このインスタントのコピーから指定されたミリ秒単位デュレーションを引いたものを返します。minusNanos(long nanosToSubtract) このインスタントのコピーから指定されたナノ秒単位デュレーションを引いたものを返します。minusSeconds(long secondsToSubtract) このインスタントのコピーから指定された秒単位デュレーションを引いたものを返します。static Instantnow()システム・クロックから現在のインスタントを取得します。static Instant指定されたクロックから現在のインスタントを取得します。static InstantofEpochMilli(long epochMilli) Instantのインスタンスをエポック1970-01-01T00:00:00Zからのミリ秒数を使用して取得します。static InstantofEpochSecond(long epochSecond) Instantのインスタンスをエポック1970-01-01T00:00:00Zからの秒数を使用して取得します。static InstantofEpochSecond(long epochSecond, long nanoAdjustment) Instantのインスタンスをエポック1970-01-01T00:00:00Zからの秒数と秒のナノ秒部分を使用して取得します。static Instantparse(CharSequence text) 2007-12-03T10:15:30.00Zなどのテキスト文字列からInstantのインスタンスを取得します。plus(long amountToAdd, TemporalUnit unit) 指定された量を加算した、このインスタントのコピーを返します。plus(TemporalAmount amountToAdd) 指定された量を加算した、このインスタントのコピーを返します。plusMillis(long millisToAdd) このインスタントのコピーに指定されたミリ秒単位デュレーションを加算したものを返します。plusNanos(long nanosToAdd) このインスタントのコピーに指定されたナノ秒単位デュレーションを加算したものを返します。plusSeconds(long secondsToAdd) このインスタントのコピーに指定された秒単位デュレーションを加算したものを返します。<R> Rquery(TemporalQuery<R> query) 指定された問合せを使用してこのインスタントを問い合わせます。range(TemporalField field) 指定されたフィールドの有効な値の範囲を取得します。longこのインスタントをエポック1970-01-01T00:00:00Zからのミリ秒数に変換します。toString()ISO-8601表現によるこのインスタントの文字列表現です。truncatedTo(TemporalUnit unit) 指定された単位に切り捨てられた状態で、このInstantのコピーを返します。別のInstantまでDurationを計算します。longuntil(Temporal endExclusive, TemporalUnit unit) もう一方のインスタントまでの時間量を指定された単位で計算します。with(TemporalAdjuster adjuster) このインスタントの調整済のコピーを返します。with(TemporalField field, long newValue) 指定されたフィールドを新しい値に設定して、このインスタントのコピーを返します。
-
フィールド詳細
-
EPOCH
public static final Instant EPOCH1970-01-01T00:00:00Zエポック・インスタントの定数。 -
MIN
public static final Instant MINサポートされる最小Instant、-1000000000-01-01T00:00Z。 これは、遠い過去のインスタントとしてアプリケーションで使用できます。これは、最小
LocalDateTimeの1年前です。 これにより、ローカル日付/時間に加えてインスタントに影響するZoneOffsetの範囲を扱うために十分な値が提供されます。 この値は、年の値がintに収まるようにも選択されます。 -
MAX
public static final Instant MAXサポートされる最大Instant、1000000000-12-31T23:59:59.999999999Z。 これは、遠い未来のインスタントとしてアプリケーションで使用できます。これは、最大
LocalDateTimeの1年後です。 これにより、ローカル日付/時間に加えてインスタントに影響するZoneOffsetの範囲を扱うために十分な値が提供されます。 この値は、年の値がintに収まるようにも選択されます。
-
-
メソッドの詳細
-
now
public static Instant now()システム・クロックから現在のインスタントを取得します。これは、
システムUTCクロックを照会して現在のインスタントを取得します。このメソッドを使用すると、テストで代替時間ソースを使用できなくなります。実際はクロックがハードコードされているためです。
- 戻り値:
- システム・クロックを使用する現在のインスタント、nullでない
-
now
指定されたクロックから現在のインスタントを取得します。これは、指定されたクロックを照会して現在の時間を取得します。
このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは
dependency injectionを使用して導入できます。- パラメータ:
clock- 使用するクロック、null以外- 戻り値:
- 現在のインスタント、nullでない
-
ofEpochSecond
public static Instant ofEpochSecond(long epochSecond) Instantのインスタンスをエポック1970-01-01T00:00:00Zからの秒数を使用して取得します。ナノ秒フィールドはゼロに設定されます。
- パラメータ:
epochSecond- 1970-01-01T00:00:00Zからの秒数- 戻り値:
- インスタント、nullでない
- スロー:
DateTimeException- インスタントが最大または最小インスタントを超える場合
-
ofEpochSecond
public static Instant ofEpochSecond(long epochSecond, long nanoAdjustment) Instantのインスタンスをエポック1970-01-01T00:00:00Zからの秒数と秒のナノ秒部分を使用して取得します。このメソッドには任意のナノ秒数を渡すことができます。 ファクトリは、保存済みナノ秒の範囲が0から999,999,999であることを保証するために、秒とナノ秒の値を変更します。 たとえば、次のような場合、即時に同じになります。
Instant.ofEpochSecond(3, 1); Instant.ofEpochSecond(4, -999_999_999); Instant.ofEpochSecond(2, 1000_000_001);
- パラメータ:
epochSecond- 1970-01-01T00:00:00Zからの秒数nanoAdjustment- 秒数に対するナノ秒調整、正または負- 戻り値:
- インスタント、nullでない
- スロー:
DateTimeException- インスタントが最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
ofEpochMilli
public static Instant ofEpochMilli(long epochMilli) Instantのインスタンスをエポック1970-01-01T00:00:00Zからのミリ秒数を使用して取得します。秒とナノ秒が、指定されたミリ秒から抽出されます。
- パラメータ:
epochMilli- 1970-01-01T00:00:00Zからのミリ秒数- 戻り値:
- インスタント、nullでない
-
from
public static Instant from(TemporalAccessor temporal) Instantのインスタンスを時間的オブジェクトから取得します。これは、指定された時間的オブジェクトに基づいてインスタントを取得します。
TemporalAccessorは日付/時間情報の任意セットを表し、このファクトリはこれをInstantのインスタンスに変換します。この変換は
INSTANT_SECONDSおよびNANO_OF_SECONDフィールドを抽出します。このメソッドは関数型インタフェース
TemporalQueryのシグネチャに一致するため、メソッド参照Instant::from経由の問合せとして使用できます。- パラメータ:
temporal- 変換する一時オブジェクト、null以外- 戻り値:
- インスタント、nullでない
- スロー:
DateTimeException-Instantに変換できない場合
-
parse
public static Instant parse(CharSequence text) 2007-12-03T10:15:30.00Zなどのテキスト文字列からInstantのインスタンスを取得します。文字列はUTC内の有効なインスタントを表現している必要があり、
DateTimeFormatter.ISO_INSTANTを使用して解析されます。- パラメータ:
text- 解析するテキスト。null以外- 戻り値:
- 解析されたインスタント、nullでない
- スロー:
DateTimeParseException- テキストが解析できない場合
-
isSupported
public boolean isSupported(TemporalField field) 指定されたフィールドがサポートされているかどうかをチェックします。これは、指定されたフィールドについてこのインスタントを照会できるかどうかをチェックします。 falseの場合、
range、get、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。フィールドが
ChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。NANO_OF_SECONDMICRO_OF_SECONDMILLI_OF_SECONDINSTANT_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_DAYSDAYS
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の場合、ここに問合せを実装します。サポートされるフィールドはこの日付/時間に基づく有効な値を返します。ただし、INSTANT_SECONDSは除きます (大きすぎてintに収まらず、DateTimeExceptionをスローする)。 他のすべての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- 数値のオーバーフローが発生した場合
-
getEpochSecond
public long getEpochSecond()Javaエポック1970-01-01T00:00:00Zからの秒数を取得します。エポック秒カウントは秒の単純な増分カウントで、0秒は1970-01-01T00:00:00Zです。 ナノ秒部分は
getNano()によって戻されます。- 戻り値:
- エポック1970-01-01T00:00:00Zからの秒数
-
getNano
public int getNano()秒の始まりから時系列の後の方へのナノ秒数を取得します。ナノ秒秒値は、
getEpochSecond()によって返された秒数からの総ナノ秒数を測定します。- 戻り値:
- 秒の中のナノ秒、常に正、999,999,999を超えない
-
with
public Instant with(TemporalAdjuster adjuster) このインスタントの調整済のコピーを返します。これは、このインスタントに基づいて、インスタントが調整された状態の、
Instantを返します。 調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。 どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。このメソッドの結果は、指定されたアジャスタで
thisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのwith - パラメータ:
adjuster- 使用するアジャスタ、null以外- 戻り値:
- 調整が行われた
thisに基づくInstant、nullでない - スロー:
DateTimeException- 調整ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
with
public Instant with(TemporalField field, long newValue) 指定されたフィールドを新しい値に設定して、このインスタントのコピーを返します。これは、このインスタントに基づいて、指定されたフィールドの値が変更された状態の
Instantを返します。 値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。フィールドが
ChronoFieldの場合は、調整はここで実装されます。 サポートされるフィールドは次のように動作します。NANO_OF_SECOND- 指定された「1秒のうちのナノ秒」でInstantを返します。 エポック秒は変更されません。MICRO_OF_SECOND- 指定された「1秒のうちのマイクロ秒」と1,000の積によって「1秒のうちのナノ秒」が置き換えられた状態の、Instantを返します。 エポック秒は変更されません。MILLI_OF_SECOND- 指定された「1秒のうちのミリ秒」と1,000,000の積によって「1秒のうちのナノ秒」が置き換えられた状態の、Instantを返します。 エポック秒は変更されません。INSTANT_SECONDS- 指定されたエポック秒でInstantを返します。 「1秒のうちのナノ秒」は変更されません。
いずれの場合も、新しい値がフィールドの値の有効範囲外にあると
DateTimeExceptionがスローされます。他のすべての
ChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、thisを引数として渡してTemporalField.adjustInto(Temporal, long)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのwith - パラメータ:
field- 結果に設定するフィールド、null以外newValue- 結果のフィールドの新しい値- 戻り値:
- 指定されたフィールドが設定された
thisに基づくInstant、nullでない - スロー:
DateTimeException- フィールドを設定できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
truncatedTo
public Instant truncatedTo(TemporalUnit unit) 指定された単位に切り捨てられた状態で、このInstantのコピーを返します。インスタントを切り捨てるとは、指定された単位よりも小さいフィールドがゼロに設定された状態で、オリジナルのコピーを返すことです。 フィールドは、
toStringと同様にUTCオフセットの使用に基づいて計算されます。 たとえば、MINUTES単位で切り捨てると、もっとも近い分に切り捨てられ、秒とナノ秒はゼロに設定されます。単位は、標準日の長さを余りなしで等分するデュレーションを持つ必要があります。 これには、
ChronoUnitとDAYSで提供されるすべての時間単位が含まれます。 他の単位は例外をスローします。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
unit- 切り捨てを行う単位、nullでない- 戻り値:
- 時間が切り捨てられたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 単位が切り捨てについて無効な場合UnsupportedTemporalTypeException- 単位がサポートされていない場合
-
plus
public Instant plus(TemporalAmount amountToAdd) 指定された量を加算した、このインスタントのコピーを返します。これは、このインスタントに基づいて、指定された量が加算された状態の、
Instantを返します。 この量は通常Durationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 加算する量、nullでない- 戻り値:
- 加算が行われたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 加算できない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plus
public Instant plus(long amountToAdd, TemporalUnit unit) 指定された量を加算した、このインスタントのコピーを返します。これは、このインスタントに基づいて、単位の量が加算された状態の、
Instantを返します。 量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。フィールドが
ChronoUnitの場合は、加算はここで実装されます。 サポートされるフィールドは次のように動作します。NANOS- 指定されたナノ秒数が追加されたInstantを返します。 これはplusNanos(long)と同等です。MICROS- 指定されたマイクロ秒数が追加されたInstantを返します。 これは、量が1,000倍されたplusNanos(long)と同等です。MILLIS- 指定されたミリ秒数が追加されたInstantを返します。 これは、量が1,000,000倍されたplusNanos(long)と同等です。SECONDS- 指定された秒数が追加されたInstantを返します。 これはplusSeconds(long)と同等です。MINUTES- 指定された分数が追加されたInstantを返します。 これは、量が60倍されたplusSeconds(long)と同等です。HOURS- 指定された時間数が追加されたInstantを返します。 これは、量が3,600倍されたplusSeconds(long)と同等です。HALF_DAYS- 指定された半日を追加したInstantを返します。 これは、量が43,200 (12時間)倍されたplusSeconds(long)と同等です。DAYS- 指定された日数が追加されたInstantを返します。 これは、量が86,400 (24時間)倍されたplusSeconds(long)と同等です。
他のすべての
ChronoUnitインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 結果に加算する単位の量、負も可unit- 加算する量の単位、nullでない- 戻り値:
- 指定された量が加算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 加算できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plusSeconds
public Instant plusSeconds(long secondsToAdd) このインスタントのコピーに指定された秒単位デュレーションを加算したものを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
secondsToAdd- 加算する秒数、正または負- 戻り値:
- 指定された秒数を加算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 結果が最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plusMillis
public Instant plusMillis(long millisToAdd) このインスタントのコピーに指定されたミリ秒単位デュレーションを加算したものを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
millisToAdd- 加算するミリ秒数、正または負- 戻り値:
- 指定されたミリ秒が加算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 結果が最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plusNanos
public Instant plusNanos(long nanosToAdd) このインスタントのコピーに指定されたナノ秒単位デュレーションを加算したものを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
nanosToAdd- 加算するナノ秒数、正または負- 戻り値:
- 指定されたナノ秒が加算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 結果が最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minus
public Instant minus(TemporalAmount amountToSubtract) このインスタントのコピーから指定された量を引いたものを返します。これは、このインスタントに基づいて、指定された量が減算された状態の、
Instantを返します。 この量は通常Durationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 減算する量、nullでない- 戻り値:
- 減算が行われたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 減算ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minus
public Instant minus(long amountToSubtract, TemporalUnit unit) このインスタントのコピーから指定された量を引いたものを返します。これにより、この値に基づいて
Instantが戻され、単位の金額が減算されます。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。このメソッドは、量を符号反転した
plus(long, TemporalUnit)と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 結果から減算する単位の量、負も可unit- 減算する量の単位、nullでない- 戻り値:
- 指定された量が減算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 減算ができない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minusSeconds
public Instant minusSeconds(long secondsToSubtract) このインスタントのコピーから指定された秒単位デュレーションを引いたものを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
secondsToSubtract- 減算する秒数、正または負- 戻り値:
- 指定された秒数が減算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 結果が最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minusMillis
public Instant minusMillis(long millisToSubtract) このインスタントのコピーから指定されたミリ秒単位デュレーションを引いたものを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
millisToSubtract- 減算するミリ秒数、正または負- 戻り値:
- 指定されたミリ秒が減算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 結果が最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minusNanos
public Instant minusNanos(long nanosToSubtract) このインスタントのコピーから指定されたナノ秒単位デュレーションを引いたものを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
nanosToSubtract- 減算するナノ秒数、正または負- 戻り値:
- 指定されたナノ秒が減算されたこのインスタントに基づく
Instant、nullでない - スロー:
DateTimeException- 結果が最大または最小インスタントを超える場合ArithmeticException- 数値のオーバーフローが発生した場合
-
query
public <R> R query(TemporalQuery<R> query) 指定された問合せを使用してこのインスタントを問い合わせます。これは、指定された問合せ戦略オブジェクトを使用してこのインスタントを照会します。
TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。このメソッドの結果は、
thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。- 定義:
- インタフェース
TemporalAccessorのquery - 型パラメータ:
R- 結果のタイプ- パラメータ:
query- 呼び出す問合せ、null以外- 戻り値:
- 問合せ結果、nullが返されることがある(問合せによって定義される)
- スロー:
DateTimeException- 問い合わせできない場合(問合せによって定義される)ArithmeticException- 数値のオーバーフローが発生した場合(問合せによって定義される)
-
adjustInto
指定された時間的オブジェクトがこのインスタントを持つように調整します。これは、インスタントをこれと同じに変更した状態で、入力と同じ観察可能な型の時間的オブジェクトを返します。
調整は、
ChronoField.INSTANT_SECONDSとChronoField.NANO_OF_SECONDをフィールドとして渡してTemporal.with(TemporalField, long)を2回を使用することと同等です。ほとんどのケースで、
Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。// these two lines are equivalent, but the second approach is recommended temporal = thisInstant.adjustInto(temporal); temporal = temporal.with(thisInstant);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
TemporalAdjusterのadjustInto - パラメータ:
temporal- 調整するターゲット・オブジェクト、null以外- 戻り値:
- 調整されるオブジェクト、null以外
- スロー:
DateTimeException- 調整を実行できない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
until
public long until(Temporal endExclusive, TemporalUnit unit) もう一方のインスタントまでの時間量を指定された単位で計算します。これは、単一
TemporalUnitに基づいて2つのInstantオブジェクト間の時間量を計算します。 開始点と終了点は、このおよび指定されたインスタントです。 終了が開始より前である場合、結果は負になります。 計算は、2つのインスタント間の完全な単位の数を表す、整数を返します。 このメソッドに渡されるTemporalは、from(TemporalAccessor)を使用してInstantに変換されます。 たとえば、2つの日付間の秒単位の量は、startInstant.until(endInstant, SECONDS)を使用して計算できます。このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つ目は
TemporalUnit.between(Temporal, Temporal)を使用することです。// these two lines are equivalent amount = start.until(end, SECONDS); amount = SECONDS.between(start, end);
この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。計算は
ChronoUnitのこのメソッドに実装します。 単位NANOS、MICROS、MILLIS、SECONDS、MINUTES、HOURS、HALF_DAYSおよびDAYSがサポートされます。 その他のChronoUnit値は例外をスローします。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのuntil - パラメータ:
endExclusive- 終了日(これを含まない)、Instantに変換される、nullでないunit- 量を測定する単位、null以外- 戻り値:
- このインスタントと終了インスタントの間の時間量
- スロー:
DateTimeException- 量を計算できない場合、または終了TemporalをInstantに変換できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
until
別のInstantまでDurationを計算します。開始点と終了点は、
このおよび指定されたインスタントです。 終了が開始より前である場合、結果は負になります。 このメソッドの呼出しは、Duration.between(this, endExclusive)と同等です。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
endExclusive- 終了Instant、除外、null以外- 戻り値:
- この
Instantから指定されたendExclusiveInstantまでのDuration - 導入されたバージョン:
- 23
- 関連項目:
-
atOffset
public OffsetDateTime atOffset(ZoneOffset offset) このインスタントとオフセットを組み合わせてOffsetDateTimeを作成します。これは、UTC/グリニッジからの指定されたオフセットでこのインスタントから作られた
OffsetDateTimeを返します。 インスタントが大きすぎてオフセット日付/時間に収まらない場合は、例外がスローされます。このメソッドは
OffsetDateTime.ofInstant(this, offset)と同等です。- パラメータ:
offset- 組み合わせるオフセット、nullでない- 戻り値:
- このインスタントと指定されたオフセットから作られたオフセット日付/時間、nullでない
- スロー:
DateTimeException- 結果がサポートされている範囲を超える場合
-
atZone
public ZonedDateTime atZone(ZoneId zone) このインスタントとタイムゾーンを組み合わせてZonedDateTimeを作成します。これは、指定されたタイムゾーンでこのインスタントから作られた
ZonedDateTimeを返します。 インスタントが大きすぎてゾーン日付/時間に収まらない場合は、例外がスローされます。このメソッドは
ZonedDateTime.ofInstant(this, zone)と同等です。- パラメータ:
zone- 組み合わせるゾーン、nullでない- 戻り値:
- このインスタントと指定されたゾーンから作られたゾーン日付/時間、nullでない
- スロー:
DateTimeException- 結果がサポートされている範囲を超える場合
-
toEpochMilli
public long toEpochMilli()このインスタントをエポック1970-01-01T00:00:00Zからのミリ秒数に変換します。このインスタントが表している時系列上の時点が遠すぎる未来または過去であるため、
longミリ秒に収まらない場合は、例外がスローされます。このインスタントの精度がミリ秒精度より大きい場合は、ナノ秒の量が100万で整数除算されたかのように、変換によって余分な精度情報が捨てられます。
- 戻り値:
- エポック1970-01-01T00:00:00Zからのミリ秒数
- スロー:
ArithmeticException- 数値のオーバーフローが発生した場合
-
compareTo
public int compareTo(Instant otherInstant) このインスタントと指定されたインスタントを比較します。比較は、インスタントの時系列位置ベースです。
Comparableに定義されているとおりに、「equalsと一致」しています。- 定義:
compareTo、インタフェースComparable<Instant>- パラメータ:
otherInstant- 比較する他方のインスタント、nullでない- 戻り値:
- コンパレータ値。このインスタントが
otherInstantより前の場合にはゼロ未満、等しい場合はゼロより前、このインスタントがotherInstantより後の場合にはゼロより大きい値 - スロー:
NullPointerException- otherInstantがnullの場合。- 関連項目:
-
isAfter
public boolean isAfter(Instant otherInstant) このインスタントが指定されたインスタントの後かどうかをチェックします。比較は、インスタントの時系列位置ベースです。
- パラメータ:
otherInstant- 比較する他方のインスタント、nullでない- 戻り値:
- このインスタントが指定されたインスタントの後にある場合はtrue
- スロー:
NullPointerException- otherInstantがnullの場合。
-
isBefore
public boolean isBefore(Instant otherInstant) このインスタントが指定されたインスタントの前かどうかをチェックします。比較は、インスタントの時系列位置ベースです。
- パラメータ:
otherInstant- 比較する他方のインスタント、nullでない- 戻り値:
- このインスタントが指定されたインスタントの前にある場合はtrue
- スロー:
NullPointerException- otherInstantがnullの場合。
-
equals
-
hashCode
-
toString
public String toString()ISO-8601表現によるこのインスタントの文字列表現です。使用されるフォーマットは
DateTimeFormatter.ISO_INSTANTと同じです。
-