Subtracts this duration from the specified temporal object.
The returned temporal object is of the same type as of the input temporal object.
package com.logicbig.example.duration;
import java.time.*;
import java.time.temporal.Temporal;
public class SubtractFromExample {
public static void main(String... args) {
Duration d = Duration.ofHours(20);
System.out.println(d);
subtract(d, LocalDateTime.now());
subtract(d, LocalTime.now());
subtract(d, OffsetDateTime.now());
subtract(d, OffsetTime.now());
subtract(d, Instant.now());
subtract(d, ZonedDateTime.now());
}
private static void subtract(Duration d, Temporal t) {
Temporal t1 = d.subtractFrom(t);
System.out.printf("subtract from %-47s (%-15s) => %s%n", t, t.getClass().getSimpleName(), t1);
}
}
Output
PT20H
subtract from 2017-05-01T15:58:22.606 (LocalDateTime ) => 2017-04-30T19:58:22.606
subtract from 15:58:22.642 (LocalTime ) => 19:58:22.642
subtract from 2017-05-01T15:58:22.642-05:00 (OffsetDateTime ) => 2017-04-30T19:58:22.642-05:00
subtract from 15:58:22.643-05:00 (OffsetTime ) => 19:58:22.643-05:00
subtract from 2017-05-01T20:58:22.643Z (Instant ) => 2017-05-01T00:58:22.643Z
subtract from 2017-05-01T15:58:22.648-05:00[America/Chicago] (ZonedDateTime ) => 2017-04-30T19:58:22.648-05:00[America/Chicago]