⛳
【Java】java.time.Durationクラスの例
時・分・秒などで収まるデータのときに使用
between
2つのInstantなどの間の時間差を表すDurationを取得
public class DurationTest {
public static void main(String[] args) {
Instant start = Instant.parse("2025-01-27T10:00:00Z");
Instant end = Instant.parse("2025-01-27T12:30:00Z");
// 開始と終了の間のDurationを計算
Duration duration = Duration.between(start, end);
System.out.println("時間差: " + duration.toHours() + "時間 " + duration.toMinutesPart() + "分");
}
}
ofDays
日数単位で時間を扱いたい時などに使用
public class OfDaysTest {
public static void main(String[] args) {
Duration duration = Duration.ofDays(5);
System.out.println("日数: " + duration.toDays() + "日");
}
}
parse
ISO 8601形式の文字列を解析して Duration インスタンスを作成
public class ParseTest {
public static void main(String[] args) {
Duration duration = Duration.parse("PT2H30M");
System.out.println("時間: " + duration.toHours() + "時間 " + duration.toMinutesPart() + "分");
}
}
multipliedBy
Durationを指定した値で掛け算して、新しいDuration を生成
public class MltipliedByTest {
public static void main(String[] args) {
Duration duration = Duration.ofHours(2); // 2時間
Duration result = duration.multipliedBy(3); // 3倍
System.out.println("元の時間: " + duration.toHours() + "時間");
System.out.println("3倍の時間: " + result.toHours() + "時間");
}
}
dividedBy
Durationを指定した値で割り算して、新しいDuration を生成
public static void main(String[] args) {
Duration duration = Duration.ofHours(6); // 6時間
Duration divided = duration.dividedBy(2); // 半分にする
System.out.println("元の時間: " + duration.toHours() + "時間");
System.out.println("割った時間: " + divided.toHours() + "時間");
}
}
Udemyで講座を公開中!
X(旧Twitter)
Zenn 本
Youtube
Discussion