java.time.Durationは、時間の経過を表すためのクラスです。
java.time.Durationの特徴
Durationは以下の特徴があります。
- Java SE8で導入されたAPI
- ナノ秒単位までの精度を持っている
- 他のDurationオブジェクトとの加算、減算が可能
- 他のDurationオブジェクトとの大小比較が可能
java.time.Durationの継承・実装
継承クラス
・java.lang.Object
・java.time.Duration
実装インターフェース
・java.io.Serializable
・java.lang.Comparable<Duration>
・java.time.temporal.TemporalAmount
導入バージョン
・JDK1.8
java.time.DurationのAPI
型 | 定数 | 説明 |
---|---|---|
Duration | ZERO | ゼロを表す定数 |
戻値型 | メソッド | 静的 | 説明 |
---|---|---|---|
Duration | abs() | デュレーションの絶対値を返す(マイナス→プラス) | |
int | compareTo(Duration d) | 大小比較をする (引数が小さい:1 引数が大きい:-1 同じ:0) | |
long | get(TemporalUnit u) | 指定した単位の値を返す | |
int | getNano() | このデュレーション内のナノ秒値を返す | |
long | getSeconds() | このデュレーション内の秒値を返す | |
List<TemporalUnit> | getUnits() | このデュレーションでサポートされている単位セットを返す | |
boolean | isNegative() | durationが負かどうか | |
boolean | isZero() | durationがゼロかどうか | |
Duration | minus(Duration d) | duration dを減算したDurationを返す | |
Duration | minus(long a, TemporalUnit u) | 指定したdurationを減算したDurationを返す | |
Duration | minusDays(long a) | 日数aを減算したDurationを返す | |
Duration | minusHours(long a) | 時間数aを減算したDurationを返す | |
Duration | minusMillis(long a) | ミリ秒数aを減算したDurationを返す | |
Duration | minusMinutes(long a) | 分数aを減算したDurationを返す | |
Duration | minusNanos(long a) | ナノ秒数aを減算したDurationを返す | |
Duration | minusSeconds(long a) | 秒数aを減算したDurationを返す | |
Duration | ofDays(long d) | 〇 | 日数を表すDurationを生成する |
Duration | ofHours(long h) | 〇 | 時間数を表すDurationを生成する |
Duration | ofMillis(long m) | 〇 | ミリ秒数を表すDurationを生成する |
Duration | ofMinutes(long m) | 〇 | 分数を表すDurationを生成する |
Duration | ofNanos(long n) | 〇 | ナノ秒数を表すDurationを生成する |
Duration | ofSeconds(long s) | 〇 | 秒数を表すDurationを生成する |
Duration | parse(CharSequence t) | 〇 | デュレーションフォーマット文字列からDurationを生成する |
Duration | plus(Duration d) | duration dを加算したDurationを返す | |
Duration | plus(long a, TemporalUnit u) | 指定したdurationを加算したDurationを返す | |
Duration | plusDays(long a) | 日数aを加算したDurationを返す | |
Duration | plusHours(long a) | 時間数aを加算したDurationを返す | |
Duration | plusMillis(long a) | ミリ秒数aを加算したDurationを返す | |
Duration | plusMinutes(long a) | 分数aを加算したDurationを返す | |
Duration | plusNanos(long a) | ナノ秒数aを加算したDurationを返す | |
Duration | plusSeconds(long a) | 秒数aを加算したDurationを返す | |
long | toDays() | 日数を取得する | |
long | toHours() | 時間数を取得する | |
long | toMillis() | ミリ秒数を取得する | |
long | toMinutes() | 分数を取得する | |
long | toNanos() | ナノ秒数を取得する |
java.time.Durationサンプル
- (Durationを生成する)
-
//日数、時間、分を指定して生成する Duration d1 = Duration d1 = Duration.ofDays(2).plusHours(3).plusMinutes(4); //2日3時間4分 System.out.println(d1); → PT51H4M //デュレーションフォーマットから生成する Duration d2 = Duration.parse("P2DT3H4M"); //2日3時間4分 System.out.println(d2); → PT51H4M
- (ナノ秒単位のDurationを取得する)
-
Duration d1 = Duration.ofHours(1).plusMinutes(30); //1時間30分 long nanos = d1.toNanos(); System.out.println(nanos); → 5400000000000
- (2つのDurationの大小比較をする)
-
Duration d1 = Duration.ofHours(1).plusMinutes(30); //1時間30分 Duration d2 = Duration.ofHours(2); //2時間00分 int result = d1.compareTo(d2); result → -1
- (2つのDurationの差を取得する)
-
Duration d1 = Duration.ofHours(2).plusMinutes(40); //2時間40分 Duration d2 = Duration.ofHours(1).plusMinutes(30); //1時間30分 Duration d = d1.minus(d2); System.out.println(d); → PT1H10M
コメント