1. Overview
In this article, We'll learn how to use LocalDate class adjustInto() method in java 8.
This adjustInto(Temporal temporal) method adjusts the value of temporal object as same as the this or current object.
Let us take a simple example, We have two objects of LocalDate class objects localDate1 and localDate2. If we call the adjustInto() method like this localDate1.adjustInto(localDate2) then localDate2 value will be modified to as same as localDate1. After this line execution, both of these objects would be having the same values.
Read more about LocalDate Class
2. LocalDate adjustInto() syntax
adjustInto() method modifies the values of passed date object to the called object. In other words it creates a copy of same this object.
Syntax:
Temporal adjustInto(Temporal temporal)
adjustInto() method returns the modified new object but the passed object can not be changed because LocalDate is immutable class.
Temporal is an interface and is implemented by all these classes HijrahDate, Instant, JapaneseDate, LocalDate, LocalDateTime, LocalTime, MinguoDate, OffsetDateTime, OffsetTime, ThaiBuddhistDate, Year, YearMonth, ZonedDateTime
3. Java 8 LocalDate adjustInto() Examples
In the below example, we have taken simple two LocalDate objects such as localDate1 and localDate2.
Next, called localDate2.adjustInfo(localDate2) which returns the new object as same as localDate2.
We need to typecast to right object otherwise will get the compile time error.
In our case object is LocalDate and type casted to correct class.
package com.javaprogramto.java8.dates.localdate; import java.time.LocalDate; /** * * LocalDate.adjustInfo() example in java 8 * * @author javaprogramto.com * */ public class LocalDateAdjustIntoExample { public static void main(String[] args) { LocalDate localDate1 = LocalDate.now(); LocalDate localDate2 = LocalDate.of(2020, 01, 02); System.out.println("Before"); System.out.println("LocalDate 1 : " + localDate1); System.out.println("LocalDate 2 : " + localDate2); localDate1 = (LocalDate) localDate2.adjustInto(localDate1); System.out.println("After"); System.out.println("LocalDate 1 : " + localDate1); System.out.println("LocalDate 2 : " + localDate2); } }
Output:
Before LocalDate 1 : 2020-12-03 LocalDate 2 : 2020-01-02 After LocalDate 1 : 2020-01-02 LocalDate 2 : 2020-01-02
From the output, we can observe that localDate1 value is changed to localDate2.
4. Another Example To adjustInto() with ZonedDateTime Examples
In the below example, created three objects using ZonedDateTime, LocalDateTime and LocalDateTime.
Now, we will adjust first two dates values using adjustInto() method.
package com.javaprogramto.java8.dates.localdate; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZonedDateTime; /** * * LocalDate.adjustInfo() example in java 8 with different Temporal types. * * @author javaprogramto.com * */ public class LocalDateAdjustIntoExample { public static void main(String[] args) { // created 3 datetime objects using different temporal objects such as ZonedDateTime, LocalDateTime ZonedDateTime date1 = ZonedDateTime.now(); LocalDateTime date2 = LocalDateTime.now(); LocalDateTime date3 = LocalDateTime.of(LocalDate.now(), LocalTime.now()); System.out.println("Before"); System.out.println("date1 : " + date1); System.out.println("date2 : " + date2); System.out.println("date3 : " + date3); // adjusting the date1 and date2 values using adjustInto() method. date1 = (ZonedDateTime) date3.adjustInto(date1); date2 = (LocalDateTime) date3.adjustInto(date2); System.out.println("After"); System.out.println("date1 : " + date1); System.out.println("date2 : " + date2); System.out.println("date3 : " + date3); } }
Output:
Before date1 : 2020-12-03T23:42:00.360295+05:30[Asia/Kolkata] date2 : 2020-12-03T23:42:00.360445 date3 : 2020-12-03T23:42:00.360565 After date1 : 2020-12-03T23:42:00.360565+05:30[Asia/Kolkata] date2 : 2020-12-03T23:42:00.360565 date3 : 2020-12-03T23:42:00.360565
Observe the output after date1 and date2 adjustment and those two dates milliseconds are changed to date3 milliseconds. Hence, all three dates are having the same values.
adjustInto() method can be also used to copy the current date object into another object (creating the duplicate date and time objects).
if the method not invoked with the proper date objects then it may throw the following runtime exceptions.
DateTimeException - if unable to make the adjustment
ArithmeticException - if numeric overflow occurs
5. Conclusion
In this article, we've seen how to use the LocalDate.adjustInto() method with examples in java 8 api.
No comments:
Post a Comment
Please do not add any spam links in the comments section.