Java Duration
Duration Java 8 APIjava.time
Duration
Duration
- - Duration
- -
- -
- -
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);
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);
Duration customDuration = Duration.ofDays(1).plusHours(2).plusMinutes(3);
3.
Instant start = Instant.now();
// ...
Instant end = Instant.now();
Duration elapsed = Duration.between(start, end);
// ...
Instant end = Instant.now();
Duration elapsed = Duration.between(start, end);
4.
// ISO-8601
Duration parsedDuration = Duration.parse("PT2H30M15S"); // 23015
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
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
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
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();
//
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() + " ");
//
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
// "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;
}
// ...
}
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");
}
}
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
Duration
Period
- Duration
- Period
Duration Duration
Duration
ISO-8601
PnDTnHnMn.nS- P
- D
- T
- H
- M
- S
Java Duration Duration Duration Java 8 InstantLocalDateTime