The LocalDateTime class, introduced in Java 8 new date and time API, represents both local date and time without timezone in ISO-8601 format (yyyy-MM-ddTHH:mm:ss). It is a description of the date, as used for birthdays, combined with the local time as seen on a wall clock.

LocalDateTime is the most commonly used class from Java 8 new data and time API to handle dates and times together. It provides a wide range of utility methods for different types of date and time operations.

In this quick article, you'll learn how to convert a date-time string to an instance of LocalDateTime in Java 8 and higher. The new date and time API provides the parse() method for parsing a string to date. By default, this method accepts a date-time string in ISO-8601 format and parses it directly to an instance of LocalDateTime.

The following example demonstrates how you can convert the default ISO-8601 formatted string to LocalDateTime using the parse() method:

// ISO-8601 formatted string
String str = "2009-12-02T11:25:25";

// parse string to `LocalDateTime`
LocalDateTime dateTime = LocalDateTime.parse(str);

// print `LocalDateTime`
System.out.println("Parsed LocalDateTime: " + dateTime);

Here is how the output looks like:

Parsed LocalDateTime: 2009-12-02T11:25:25

To parse a date-time string that is not in ISO-8601 format, you need to pass an instance of DateTimeFormatter to explicitly specify the date-time string pattern as shown below:

// parse custom date-time strings
LocalDateTime dateTime = LocalDateTime.parse("Jan 15, 2019 20:12",
        DateTimeFormatter.ofPattern("MMM dd, yyyy HH:mm"));
LocalDateTime dateTime2 = LocalDateTime.parse("09/25/2017 12:55 PM",
        DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a"));
LocalDateTime localDate3 = LocalDateTime.parse("02-August-1989 11:40:12.450",
        DateTimeFormatter.ofPattern("dd-MMMM-yyyy HH:mm:ss.SSS"));

// print `LocalDate` instances
System.out.println(dateTime);
System.out.println(dateTime2);
System.out.println(localDate3);

The above code snippet will print the following on the console:

2019-01-15T20:12
2017-09-25T12:55
1989-08-02T11:40:12.450

Check out How to convert a string to date in Java guide for more string to date conversion examples.

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also Subscribe to RSS Feed.

Last Updated: