Java 8 - Duration Class API Guide

1. Duration Class Overview

A Duration is most suitable in situations that measure machine-based time, such as code that uses an Instant object.

A Duration object is measured in seconds or nanoseconds and does not use date-based constructs such as years, months, and days, though the class provides methods that convert to days, hours, and minutes. A Duration can have a negative value if it is created with an endpoint that occurs before the start point. Examples of this guide are available on Github.

Duration class provides lots of APIs/Methods to deal with duration. In this post, we will discuss a few important and frequently used Duration APIs/Methods with Examples.

The class diagram shows a list of APIs Duration provides.

 Let's discuss the following methods with examples
- static Duration between(Temporal startInclusive, Temporal endExclusive)
- long get(TemporalUnit unit)
- boolean isNegative()
- boolean isZero()
- Duration minus(Duration duration)
- Duration plus(Duration duration)

2. Duration Class Examples

2.1 Java Duration Example: between() method

import java.time.*;  
import java.time.temporal.ChronoUnit;  
public class DurationExample {  
  public static void main(String[] args) {  
    Duration d = Duration.between(LocalTime.NOON,LocalTime.MAX);  
    System.out.println(d.get(ChronoUnit.SECONDS));    
  }  
}  
Output:
43199

2.2 Java Duration Example: get() method

import java.time.*;  
import java.time.temporal.ChronoUnit;  
public class DurationExample {  
  public static void main(String[] args) {  
    Duration d = Duration.between(LocalTime.NOON,LocalTime.MAX);  
    System.out.println(d.get(ChronoUnit.SECONDS));    
  }  
}
Output:
43199
86399

2.3 Java Duration Example: isNegative() method

import java.time.*;  
public class DurationExample {  
  public static void main(String[] args) {  
      Duration d1 = Duration.between(LocalTime.MAX,LocalTime.NOON);  
      System.out.println(d1.isNegative());  
      Duration d2 = Duration.between(LocalTime.NOON,LocalTime.MAX);  
              System.out.println(d2.isNegative());      
  }  
}  
Output:
true
false

2.4 Java Duration Example: minus() method

import java.time.*;  
public class DurationExample {  
  public static void main(String[] args) {  
    Duration d1 = Duration.between(LocalTime.NOON,LocalTime.MAX);  
    System.out.println(d1.getSeconds());  
    Duration d2 = d1.minus(d1);  
    System.out.println(d2.getSeconds());  
  }  
}  
Output:
43199
0

2.5 Java Duration Example: plus() method

import java.time.*;  
public class DurationExample {  
  public static void main(String[] args) {  
    Duration d1 = Duration.between(LocalTime.NOON,LocalTime.MAX);  
    System.out.println(d1.getSeconds());  
    Duration d2 = d1.plus(d1);  
    System.out.println(d2.getSeconds());  
  }  
}  
Output:
43199
86399

3. References

Comments