Java Top

I just announced the new Learn Spring course, focused on the fundamentals of Spring 5 and Spring Boot 2:

>> CHECK OUT THE COURSE

1. Overview

Creating a date in Java had been redefined with the advent of Java 8. Besides, the new Date & Time API from the java.time package can be used with ease relative to the old one from the java.util package. In this tutorial, we'll see how it makes a huge difference.

The LocalDate class from the java.time package helps us achieve this. LocalDate is an immutable, thread-safe class. Moreover, a LocalDate can hold only date values and cannot have a time component.

Let's now see all the variants of creating one with values.

2. Create a Custom LocalDate with of()

Let's look at a few ways of creating a LocalDate representing January 8, 2020. We can create one by passing values to the factory method of:

LocalDate date = LocalDate.of(2020, 1, 8);

The month can also be specified using the Month enum:

LocalDate date = LocalDate.of(2020, Month.JANUARY, 8)

We can also try to get it using the epoch day:

LocalDate date = LocalDate.ofEpochDay(18269);

And finally, let's create one with the year and day-of-year values:

LocalDate date = LocalDate.ofYearDay(2020, 8);

3. Create a LocalDate by Parsing a String

The last option is to create a date by parsing a string. We can use the parse method with only a single argument to parse a date in the yyyy-mm-dd format:

LocalDate date = LocalDate.parse("2020-01-08");

We can also specify a different pattern to get one using the DateTimeFormatter class as the second parameter of the parse method:

LocalDate date = LocalDate.parse("8-Jan-2020", DateTimeFormatter.ofPattern("d-MMM-yyyy"));

4. Conclusion

In this article, we've seen all the variants of creating a LocalDate with values in Java. The Date & Time API articles can help us understand more.

The examples are available over on GitHub.

Java bottom

I just announced the new Learn Spring course, focused on the fundamentals of Spring 5 and Spring Boot 2:

>> CHECK OUT THE COURSE
Comments are closed on this article!