Duration class represents an amount of time between two instants on the timeline.
The Duration value can be a positive as well as negative.
You can create an instance of the Duration class using one of its ofXXX() static factory methods.
// A duration of 2 days Duration d1 = Duration.ofDays(2); // A duration of 25 minutes Duration d2 = Duration.ofMinutes(25);
instants records timestamps. Durations records elapsed time between two events.
Two instants can be compared to know whether one occurs before or after other.
You can add (and subtract) a duration to an instant to obtain another instant.
Adding two durations results in another duration.
The following is an example of getting second and nanosecond of an Instant:
import java.time.Instant; public class Main { public static void main(String[] args) { // Get the current instant Instant i1 = Instant.now(); // Get seconds and nanoseconds long seconds = i1.getEpochSecond(); int nanoSeconds = i1.getNano(); System.out.println("Current Instant: " + i1); System.out.println("Seconds: " + seconds); System.out.println("Nanoseconds: " + nanoSeconds); }/* w w w . jav a 2s .c o m*/ }
The following code demonstrates use of some operations that can be performed on instants and durations.
import java.time.Duration; import java.time.Instant; public class Main { public static void main(String[] args) { Instant i1 = Instant.ofEpochSecond(20); Instant i2 = Instant.ofEpochSecond(55); System.out.println("i1:" + i1); System.out.println("i2:" + i2); Duration d1 = Duration.ofSeconds(55); Duration d2 = Duration.ofSeconds(-17); System.out.println("d1:" + d1); System.out.println("d2:" + d2); // Compare instants System.out.println("i1.isBefore(i2):" + i1.isBefore(i2)); System.out.println("i1.isAfter(i2):" + i1.isAfter(i2)); // Add and subtract durations to instants Instant i3 = i1.plus(d1); Instant i4 = i2.minus(d2); System.out.println("i1.plus(d1):" + i3); System.out.println("i2.minus(d2):" + i4); // Add two durations Duration d3 = d1.plus(d2); System.out.println("d1.plus(d2):" + d3); }//from w ww . j av a 2 s . c o m }