Learnitweb

LocalDate class in Java with examples

LocalDate class is provided by java.time package in Java 8. This class respresents a date often in the form of year-month-date, without a time-zone in the ISO-8601 calendar system.

This class does not store or represent time and is used to represent date like your birthday or anniversary, for example 2021-03-13.

This class is immutable and thread-safe.

Following are three common ways to get an instance of LocalDate:

LocalDate representing current date

LocalDate localDate = LocalDate.now();

LocalDate instance from Year, Month and Date

LocalDate localDate = LocalDate.of(year, month, day);
ex: LocalDate localDate = LocalDate.of(2021, 3, 13);

LocalDate instance from a String

LocalDate localDate = LocalDate.parse("2021-03-13");
import java.time.LocalDate;

public class LocalDateExample {
	public static void main(String[] args) {
		LocalDate localDate = LocalDate.now();
		System.out.println("Current date : " + localDate);

		LocalDate localDate2 = LocalDate.of(2021, 3, 13);
		System.out.println("Current Date from year, month and date : " + localDate2);

		LocalDate localDate3 = LocalDate.parse("2021-03-13");
		System.out.println("Current date from a string: " + localDate3);

	}
}

Output

Current date : 2021-03-13
Current Date from year, month and date : 2021-03-13
Current date from a string: 2021-03-13

Get information about a particular date

LocalDate class provides many methods to get information about a particular date. Following are the commonly used methods:

int getDayOfMonth()Returns the day of month
DayOfWeek getDayOfWeek()Returns the day of week
int getDayOfYear()Returns the day of year
Month getMonth()Returns the month-of-year
int getMonthValue()Returns the month-of-year value from 1 to 12
int getYear()Returns the year field
int lengthOfMonth()Returns the length of month
int lengthOfYear()Returns the length of year
String toString()Returns the String representation of the date.
import java.time.LocalDate;

public class LocalDateExample {
	public static void main(String[] args) {
		LocalDate localDate = LocalDate.now();
		
		System.out.println("String representation of date : " + localDate.toString());
		System.out.println("Day of Month : " + localDate.getDayOfMonth());
		System.out.println("Day of week : " + localDate.getDayOfWeek());
		System.out.println("Day of year : " + localDate.getDayOfYear());
		System.out.println("Month : " + localDate.getMonth());
		System.out.println("Month value : " + localDate.getMonthValue());
		System.out.println("Year : " + localDate.getYear());
		System.out.println("Length of month : " + localDate.lengthOfMonth());
		System.out.println("Length of year : " + localDate.lengthOfYear());
	}
}

Output

String representation of date : 2021-03-13
Day of Month : 13
Day of week : SATURDAY
Day of year : 72
Month : MARCH
Month value : 3
Year : 2021
Length of month : 31
Length of year : 365

Date manipulation

We usually have the requirement to add days, weeks, months or years to a date. LocalDate provides methods for date manipulation. Following are the commonly used methods provided by the LocalDate class:

LocalDate plusDays(long daysToAdd)To add specified number of days
LocalDate plusMonths(long monthsToAdd)To add specified number of months
LocalDate plusWeeks(long weeksToAdd)To add specified number of weeks
LocalDate plusYears(long yearsToAdd)To add specified number of years
import java.time.LocalDate;

public class LocalDateExample {
	public static void main(String[] args) {
		LocalDate localDate = LocalDate.now();
		System.out.println("Current Date : " + localDate.toString());

		System.out.println("Date after adding 30 Days : " + localDate.plusDays(30));
		System.out.println("Date after adding 2 months : " + localDate.plusMonths(2));
		System.out.println("Date after adding 4 weeks : " + localDate.plusWeeks(4));
		System.out.println("Date after adding 2 years : " + localDate.plusYears(2));
	}
}

Output

Current Date : 2021-03-13
Date after adding 30 Days : 2021-04-12
Date after adding 2 months : 2021-05-13
Date after adding 4 weeks : 2021-04-10
Date after adding 2 years : 2023-03-13

Date comparison

LocalDate class provides methods for date comparison. LocalDate is a value based classed so equals method should be used for comparison. Following are commonly used methods for comparison:

import java.time.LocalDate;

public class LocalDateExample {
	public static void main(String[] args) {
		LocalDate today = LocalDate.now();
		System.out.println("Today : " + today.toString());
		
		LocalDate tomorrow = LocalDate.now().plusDays(1);
		System.out.println("Tomorrow : " + tomorrow);
		
		System.out.println("Does tomorrow comes after today : " + tomorrow.isAfter(today));
		System.out.println("Does tomorrow comes before today : " + tomorrow.isBefore(today));
		System.out.println("Is tomorrow equals to today : " + tomorrow.isEqual(today));
	}
}

Output

Today : 2021-03-13
Tomorrow : 2021-03-14
Does tomorrow comes after today : true
Does tomorrow comes before today : false
Is tomorrow same as today : false