[API] java.time.Durationクラス

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

【主要定数】
定数説明
DurationZEROゼロを表す定数
【主要メソッド】
戻値型メソッド静的説明
Durationabs()デュレーションの絶対値を返す(マイナス→プラス)
intcompareTo(Duration d)大小比較をする
(引数が小さい:1 引数が大きい:-1 同じ:0)
longget(TemporalUnit u)指定した単位の値を返す
intgetNano()このデュレーション内のナノ秒値を返す
longgetSeconds()このデュレーション内の秒値を返す
List<TemporalUnit>getUnits()このデュレーションでサポートされている単位セットを返す
booleanisNegative()durationが負かどうか
booleanisZero()durationがゼロかどうか
Durationminus(Duration d)duration dを減算したDurationを返す
Durationminus(long a, TemporalUnit u)指定したdurationを減算したDurationを返す
DurationminusDays(long a)日数aを減算したDurationを返す
DurationminusHours(long a)時間数aを減算したDurationを返す
DurationminusMillis(long a)ミリ秒数aを減算したDurationを返す
DurationminusMinutes(long a)分数aを減算したDurationを返す
DurationminusNanos(long a)ナノ秒数aを減算したDurationを返す
DurationminusSeconds(long a)秒数aを減算したDurationを返す
DurationofDays(long d)日数を表すDurationを生成する
DurationofHours(long h)時間数を表すDurationを生成する
DurationofMillis(long m)ミリ秒数を表すDurationを生成する
DurationofMinutes(long m)分数を表すDurationを生成する
DurationofNanos(long n)ナノ秒数を表すDurationを生成する
DurationofSeconds(long s)秒数を表すDurationを生成する
Durationparse(CharSequence t)デュレーションフォーマット文字列からDurationを生成する
Durationplus(Duration d)duration dを加算したDurationを返す
Durationplus(long a, TemporalUnit u)指定したdurationを加算したDurationを返す
DurationplusDays(long a)日数aを加算したDurationを返す
DurationplusHours(long a)時間数aを加算したDurationを返す
DurationplusMillis(long a)ミリ秒数aを加算したDurationを返す
DurationplusMinutes(long a)分数aを加算したDurationを返す
DurationplusNanos(long a)ナノ秒数aを加算したDurationを返す
DurationplusSeconds(long a)秒数aを加算したDurationを返す
longtoDays()日数を取得する
longtoHours()時間数を取得する
longtoMillis()ミリ秒数を取得する
longtoMinutes()分数を取得する
longtoNanos()ナノ秒数を取得する

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

コメント

タイトルとURLをコピーしました