Close

Java Date Time - Duration.minus() Examples

[Last Updated: Nov 8, 2025]

Java Date Time Java Java API 


Class:

java.time.Duration

java.lang.Objectjava.lang.Objectjava.time.Durationjava.time.Durationjava.time.temporal.TemporalAmountTemporalAmountjava.lang.ComparableComparablejava.io.SerializableSerializableLogicBig

Methods:

public Duration minus(Duration duration)

Returns a copy of this duration with the specified duration subtracted.


public Duration minus(long amountToSubtract,
                      TemporalUnit unit)

This method returns a copy of this Duration, subtracted by the provided amount per provided TemporalUnit.

Examples


package com.logicbig.example.duration;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;

public class MinusExample {

public static void main(String... args) {
Duration d = Duration.between(LocalDate.now().atStartOfDay(), LocalDateTime.now());
System.out.println(d);

Duration d2 = Duration.ofDays(200);
System.out.println(d2);

Duration d3 = d.minus(d2);
System.out.println(d3);
}
}

Output

PT23H59M0.894S
PT4800H
PT-4776H-1M0.894S




package com.logicbig.example.duration;

import java.time.DateTimeException;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

public class MinusExample2 {

public static void main(String... args) {
Duration d = Duration.between(LocalDate.now().atStartOfDay(), LocalDateTime.now());
System.out.println(d);

for (ChronoUnit chronoUnit : ChronoUnit.values()) {
try {
Duration d2 = d.minus(4, chronoUnit);
System.out.printf("%10s: %s%n", chronoUnit.name(), d2);
} catch (DateTimeException e) {
System.out.printf("%10s: not supported%n", chronoUnit.name());
}
}
}
}

Output

PT23H59M7.116S
NANOS: PT23H59M7.115999996S
MICROS: PT23H59M7.115996S
MILLIS: PT23H59M7.112S
SECONDS: PT23H59M3.116S
MINUTES: PT23H55M7.116S
HOURS: PT19H59M7.116S
HALF_DAYS: PT-24H-52.884S
DAYS: PT-72H-52.884S
WEEKS: not supported
MONTHS: not supported
YEARS: not supported
DECADES: not supported
CENTURIES: not supported
MILLENNIA: not supported
ERAS: not supported
FOREVER: not supported




package com.logicbig.example.duration;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.TemporalUnit;

public class MinusExample3 {

public static void main(String... args) {
Duration d = Duration.between(LocalDate.now().atStartOfDay(), LocalDateTime.now());
System.out.println(d);

for (TemporalUnit unit : d.getUnits()) {
Duration d2 = d.minus(4, unit);
System.out.printf("%10s: %s%n", unit, d2);
}
}
}

Output

PT23H59M11.373S
Seconds: PT23H59M7.373S
Nanos: PT23H59M11.372999996S




See Also