Java Duration

Duration Java 8 APIjava.time

Duration


Duration

  1. - Duration
  2. -
  3. -
  4. -

Duration

Duration Duration

1.

// 2Duration
Duration twoHours = Duration.ofHours(2);

// 30Duration
Duration thirtyMinutes = Duration.ofMinutes(30);

// 45Duration
Duration fortyFiveSeconds = Duration.ofSeconds(45);

// 500Duration
Duration fiveHundredMillis = Duration.ofMillis(500);

// 1000000Duration
Duration oneMillionNanos = Duration.ofNanos(1_000_000);

2.

// 123Duration
Duration customDuration = Duration.ofDays(1).plusHours(2).plusMinutes(3);

3.

Instant start = Instant.now();
// ...
Instant end = Instant.now();
Duration elapsed = Duration.between(start, end);

4.

// ISO-8601
Duration parsedDuration = Duration.parse("PT2H30M15S"); // 23015

Duration

1.

Duration duration = Duration.ofHours(2).plusMinutes(30);

long hours = duration.toHours();      // 2
long minutes = duration.toMinutes();  // 150
long seconds = duration.getSeconds(); // 9000
int nanos = duration.getNano();      // 0

2.

Duration d1 = Duration.ofHours(2);
Duration d2 = Duration.ofMinutes(30);

//
Duration sum = d1.plus(d2);  // 230

//
Duration diff = d1.minus(d2); // 130

//
Duration multiplied = d1.multipliedBy(3); // 6

//
Duration divided = d1.dividedBy(2); // 1

3.

Duration d1 = Duration.ofHours(1);
Duration d2 = Duration.ofMinutes(90);

boolean isEqual = d1.equals(d2);      // false
int comparison = d1.compareTo(d2);    // -1 (d1 < d2)
boolean isNegative = d1.isNegative(); // false
boolean isZero = d1.isZero();         // false

4.

Duration duration = Duration.ofMinutes(90);

//
long hours = duration.toHours();      // 1
long minutes = duration.toMinutes();  // 90
long seconds = duration.toSeconds();  // 5400
long millis = duration.toMillis();    // 5400000
long nanos = duration.toNanos();      // 5400000000000

//
long secondsPart = duration.getSeconds(); // 5400
int nanoPart = duration.getNano();       // 0

//
Duration absDuration = duration.abs();

//
Duration negated = duration.negated();

1

Instant start = Instant.now();

//
try {
    Thread.sleep(1500);
} catch (InterruptedException e) {
    e.printStackTrace();
}

Instant end = Instant.now();
Duration elapsed = Duration.between(start, end);

System.out.println(": " + elapsed.toMillis() + " ");

2

Duration duration = Duration.ofMinutes(135);

// "HH:MM:SS"
long hours = duration.toHours();
long minutes = duration.minusHours(hours).toMinutes();
long seconds = duration.minusHours(hours).minusMinutes(minutes).getSeconds();

String formatted = String.format("%02d:%02d:%02d", hours, minutes, seconds);
System.out.println(formatted); // : 02:15:00

3

Duration timeout = Duration.ofSeconds(30);
Instant startTime = Instant.now();

while (true) {
    //
    if (Duration.between(startTime, Instant.now()).compareTo(timeout) > 0) {
        System.out.println("");
        break;
    }
   
    // ...
}

import java.time.Duration;
import java.time.LocalTime;
import java.time.Instant;

public class DurationDemo {
    public static void main(String[] args) {
        // Duration
       
        // 1. of...()
        Duration duration1 = Duration.ofHours(2); // 2
        Duration duration2 = Duration.ofMinutes(90); // 90
        System.out.println("Duration 1: " + duration1);
        System.out.println("Duration 2: " + duration2);
       
        // 2. between()
        LocalTime startTime = LocalTime.of(9, 0);
        LocalTime endTime = LocalTime.of(11, 30);
        Duration duration3 = Duration.between(startTime, endTime);
        System.out.println("Duration between times: " + duration3);
       
        // 3. parse()
        Duration duration4 = Duration.parse("PT2H30M"); // ISO-8601
        System.out.println("Parsed Duration: " + duration4);
       
        // 4. Instant
        Instant startInstant = Instant.now();
        //
        try { Thread.sleep(1500); } catch (InterruptedException e) {}
        Instant endInstant = Instant.now();
        Duration duration5 = Duration.between(startInstant, endInstant);
        System.out.println("Execution duration: " + duration5.toMillis() + "ms");
    }
}

Duration 1: PT2H
Duration 2: PT1H30M
Duration between times: PT2H30M
Parsed Duration: PT2H30M
Execution duration: 1501ms

  1. Duration

  2. Period

    • Duration
    • Period
  3. Duration Duration

  4. Duration

  5. ISO-8601 PnDTnHnMn.nS

    • P
    • D
    • T
    • H
    • M
    • S

Java Duration Duration Duration Java 8 InstantLocalDateTime