Java 8 – How to subtract Date and Time fields from LocalDateTime ?

In this article, we will learn how to subtract Date (day/week/month/year) & Time (nano/second/minute/hour) fields from LocalDateTime using different methods provided in the Java 1.8 version

Subtracting Date & Time fields from LocalDateTime :

  • Subtracting Date & Time fields from LocalDateTime is quite simple using different methods provided
  • Use below methods to subtract Day or Week or Month or Year fields from LocalDateTime
    1. minusDays() – Returns a copy of invoking LocalDateTime with the specified number of days subtracted
    2. minusWeeks() – Returns a copy of invoking LocalDateTime with the specified number of weeks subtracted
    3. minusMonths() – Returns a copy of invoking LocalDateTime with the specified number of months subtracted
    4. minusYears() – Returns a copy of invoking LocalDateTime with the specified number of years subtracted
  • Likewise, use below methods to subtract Nanosecond or Second or Minute or Hour fields from LocalDateTime
    1. minusNanos() – Returns a copy of invoking LocalDateTime with the specified number of nanoseconds subtracted
    2. minusSeconds() – Returns a copy of invoking LocalDateTime with the specified number of seconds subtracted
    3. minusMinutes() – Returns a copy of invoking LocalDateTime with the specified number of minutes subtracted
    4. minusHours() – Returns a copy of invoking LocalDateTime with the specified number of hours subtracted
  • In the below illustration, we are going to do below operations with current LocalDateTime,
    1. Subtract 5 Days from LocalDateTime using minusDays() method
    2. Subtract 2 Weeks from LocalDateTime using minusWeeks() method
    3. Subtract 3 Months from LocalDateTime using minusMonths() method
    4. Subtract 1 Year from LocalDateTime using minusYears() method
    5. Subtract 125 Nanos from current system LocalDateTime using minusNanos() method
    6. Subtract 37 Seconds from current system LocalDateTime using minusSeconds() method
    7. Subtract 19 Minutes from current system LocalDateTime using minusMinutes() method
    8. Subtract 5 Hours from current system LocalDateTime using minusHours() method
  • Finally, print LocalDateTime after each operation to the console

SubtractFromLocalDateTime.java

package in.bench.resources.java8.localdatetime.examples;

import java.time.LocalDateTime;

public class SubtractFromLocalDateTime {

	public static void main(String[] args) {

		// get Current System Date/time
		LocalDateTime localDateTime = LocalDateTime.now();
		System.out.println("Current System Date/time is = " + localDateTime);


		// 1. Subtracting Day/Week/Month/Year to LocalDateTime
		System.out.println("\n\nSubtracting Day/Week/Month/Year from LocalDateTime :- \n");


		// 1.1 subtract 5 days from Current System Date/time
		LocalDateTime subtract_5_Days = localDateTime.minusDays(5);
		System.out.println("1. After subtracting 5 Days from Current System Date/time is = " 
				+ subtract_5_Days);


		// 1.2 subtract 2 weeks from Current System Date/time
		LocalDateTime subtract_2_Weeks = localDateTime.minusWeeks(2);
		System.out.println("2. After subtracting 2 Weeks from Current System Date/time is = " 
				+ subtract_2_Weeks);


		// 1.3 subtract 3 months from Current System Date/time
		LocalDateTime subtract_3_Months = localDateTime.minusMonths(3);
		System.out.println("3. After subtracting 3 Months from Current System Date/time is = " 
				+ subtract_3_Months);


		// 1.4 subtract 1 year from Current System Date/time
		LocalDateTime subtract_1_Year = localDateTime.minusYears(1);
		System.out.println("4. After subtracting 1 Year from Current System Date/time is = " 
				+ subtract_1_Year);



		// 2. Subtracting Nano/Second/Minute/Hour from LocalDateTime
		System.out.println("\n\nSubtracting Nano/Second/Minute/Hour from LocalDateTime :- \n");


		// 2.1 subtract 125 NanoSeconds from Current System Date/time
		LocalDateTime sub_125_Nanos = localDateTime.minusNanos(125);
		System.out.println("1. After subtracting 125 Nanoseconds from Current System Date/time is = " 
				+ sub_125_Nanos);


		// 2.2 subtract 37 Seconds from Current System Date/time
		LocalDateTime sub_37_Seconds = localDateTime.minusSeconds(37);
		System.out.println("2. After subtracting 37 Seconds from Current System Date/time is = " 
				+ sub_37_Seconds);


		// 2.3 subtract 19 Minutes from Current System Date/time
		LocalDateTime sub_19_Minutes = localDateTime.minusMinutes(19);
		System.out.println("3. After subtracting 19 Minutes from Current System Date/time is = " 
				+ sub_19_Minutes);


		// 2.4 subtract 5 Hours from Current System Date/time
		LocalDateTime sub_5_Hours = localDateTime.minusHours(5);
		System.out.print("4. After subtracting 5 Hours from Current System Date/time is = " 
				+ sub_5_Hours);
	}
}

Output:

Current System Date/time is = 2022-08-10T18:26:39.114434400


Subtracting Day/Week/Month/Year from LocalDateTime :- 

1. After subtracting 5 Days from Current System Date/time is = 2022-08-05T18:26:39.114434400
2. After subtracting 2 Weeks from Current System Date/time is = 2022-07-27T18:26:39.114434400
3. After subtracting 3 Months from Current System Date/time is = 2022-05-10T18:26:39.114434400
4. After subtracting 1 Year from Current System Date/time is = 2021-08-10T18:26:39.114434400


Subtracting Nano/Second/Minute/Hour from LocalDateTime :- 

1. After subtracting 125 Nanoseconds from Current System Date/time is = 2022-08-10T18:26:39.114434275
2. After subtracting 37 Seconds from Current System Date/time is = 2022-08-10T18:26:02.114434400
3. After subtracting 19 Minutes from Current System Date/time is = 2022-08-10T18:07:39.114434400
4. After subtracting 5 Hours from Current System Date/time is = 2022-08-10T13:26:39.114434400

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – How to alter Date and Time fields of LocalDateTime ?
Java 8 – How to add Date and Time fields to LocalDateTime ?