In the following example we will learn how to manipulate a LocalDate
object. There are many methods available for us to change the value of a LocalDate
object. For example, we can change the year, month and day of LocalDate
object. We can use methods like withYear()
, withDayOfMonth()
, plusYears()
, minusMonths()
, etc. All these methods will return a new LocalDate
object, the original LocalDate
will stay unchanged.
Let’s see the following code example for demonstration on how to manipulate the value of LocalDate
object.
package org.kodejava.datetime;
import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
public class LocalDateManipulation {
public static void main(String[] args) {
absoluteAttributeManipulations();
relativeAttributeManipulations();
}
private static void absoluteAttributeManipulations() {
System.out.println("LocalDateManipulation.absoluteAttributeManipulations");
LocalDate date1 = LocalDate.of(2021, Month.JANUARY, 1);
LocalDate date2 = date1.withYear(2010);
LocalDate date3 = date2.withMonth(Month.DECEMBER.getValue());
LocalDate date4 = date3.withDayOfMonth(15);
LocalDate date5 = date4.with(ChronoField.DAY_OF_YEAR, 100);
System.out.println("of(2021, Month.JANUARY, 1) => " + date1);
System.out.println("date1.withYear(2010) => " + date2);
System.out.println("date2.withMonth(Month.DECEMBER.getValue()) => " + date3);
System.out.println("date3.withDayOfMonth(15) => " + date4);
System.out.println("date4.with(ChronoField.DAY_OF_YEAR, 100) => " + date5);
}
private static void relativeAttributeManipulations() {
System.out.println("LocalDateManipulation.relativeAttributeManipulations");
LocalDate date1 = LocalDate.of(2021, Month.AUGUST, 17);
LocalDate date2 = date1.minusYears(70);
LocalDate date3 = date2.plusMonths(10);
LocalDate date4 = date3.minusDays(15);
LocalDate date5 = date4.plusWeeks(52);
LocalDate date6 = date5.minus(52, ChronoUnit.WEEKS);
System.out.println("of(2021, Month.AUGUST, 17) => " + date1);
System.out.println("date1.minusYears(70) => " + date2);
System.out.println("date1.plusMonths(10) => " + date3);
System.out.println("date3.minusDays(15) => " + date4);
System.out.println("date4.plusWeeks(52) => " + date5);
System.out.println("date5.minus(52, ChronoUnit.WEEKS) => " + date6);
}
}
The results of this code snippet are:
LocalDateManipulation.absoluteAttributeManipulations
of(2021, Month.JANUARY, 1) => 2021-01-01
date1.withYear(2010) => 2010-01-01
date2.withMonth(Month.DECEMBER.getValue()) => 2010-12-01
date3.withDayOfMonth(15) => 2010-12-15
date4.with(ChronoField.DAY_OF_YEAR, 100) => 2010-04-10
LocalDateManipulation.relativeAttributeManipulations
of(2021, Month.AUGUST, 17) => 2021-08-17
date1.minusYears(70) => 1951-08-17
date1.plusMonths(10) => 1952-06-17
date3.minusDays(15) => 1952-06-02
date4.plusWeeks(52) => 1953-06-01
date5.minus(52, ChronoUnit.WEEKS) => 1952-06-02
Latest posts by Wayan (see all)
- How do I use Proxy class to configure HTTP and SOCKS proxies in Java? - March 27, 2025
- How do I retrieve network interface information using NetworkInterface in Java? - March 26, 2025
- How do I work with InetAddress to resolve IP addresses in Java? - March 25, 2025