The withMonth() method of LocalDate class in Java returns a copy of this LocalDate with the month-of-year altered.
Syntax:
public LocalDate withMonth(int month)
Parameter: This method accepts a mandatory parameter month which specifies the month-of-year to set in the result, from 1 i.e., January to 12 i.e., December.
Returns: The function returns a LocalDate based on this date with the requested month, not null.
Exceptions: The function throws a DateTimeException when the month-of-year value is invalid.
Below programs illustrate the LocalDate.withMonth() method:
Program 1:
// Program to illustrate the withMonth() method  import java.util.*;import java.time.*;  public class GfG {    public static void main(String[] args)    {          // Parses the date        LocalDate dt1 = LocalDate.parse("2018-12-07");        LocalDate result = dt1.withMonth(01);          // Prints the date with year        System.out.println("The date with month is: " + result);    }} |
The date with month is: 2018-01-07
Program 2:
// Program to illustrate the withMonth() method// Exceptionsimport java.util.*;import java.time.*;import java.time.temporal.ChronoField;  public class GfG {    public static void main(String[] args)    {          try {            // Parses the date            LocalDate dt1 = LocalDate.parse("2018-12-07");            LocalDate result = dt1.withMonth(13);              // Prints the date with year            System.out.println("The date with month is: " + result);        }        catch (Exception e) {            System.out.println(e);        }    }} |
java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 13
Reference: https://docs.oracle.com/javase/10/docs/api/java/time/LocalDate.html#withMonth(int)
