How to convert LocalDateTime to string in Java

Java 8 new date and time API introduced the LocalDateTime class that represents both local date and time without timezone information in ISO-8601 format (yyyy-MM-ddTHH:mm:ss).

The LocalDateTime is the most popular class from Java 8 new data and time API for storing dates and times together. It provides a broad range of utility methods for different types of date and time operations.

In this quick tutorial, you'll learn how to format an instance of LocalDateTime to a date-time string in Java 8. Just like LocalDate class, LocalDateTime also provides format() method that accepts an instance of DateTimeFormatter as an argument to format this instance using the specified format:

public String format(DateTimeFormatter formatter)

A DateTimeFormatter instance specifies the pattern used to format the date and should not be null. format() returns the formatted date-time string if the specified pattern is valid.

The following example demonstrates how you can get the current LocalDateTime instance and then use the format() method to convert it into a date-time string:

// current date and time
LocalDateTime now =;

// format date-time to string
String dateStr = now.format(DateTimeFormatter.ofPattern("EEEE, MMMM dd, yyyy hh:mm:ss a"));

// print date strings
System.out.println("Current Date & Time (before): " + now);
System.out.println("Formatted Date & Time (after): " + dateStr);

The above example code will output the following:

Current Date & Time (before): 2019-12-30T17:00:41.375
Formatted Date & Time (after): Monday, December 30, 2019 05:00:41 PM

You can also convert a string to LocalDateTime and then use the format() method to change the date-time string format as shown below:

// old date-time string
String oldStr = "12/23/2019 14:55";

// parse old string to date-time
LocalDateTime dateTime = LocalDateTime.parse(oldStr, DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm"));

// format date-time to string
String newStr = dateTime.format(DateTimeFormatter.ofPattern("MMMM dd, yyyy hh:mm a"));

// print both strings
System.out.println("Date & Time Format (before): " + oldStr);
System.out.println("Date & Time Format (after): " + newStr);

Now the output should look like the below:

Date & Time Format (before): 12/23/2019 14:55
Date & Time Format (after): December 23, 2019 02:55 PM

Check out How to format a date to string in Java tutorial for more Java 8 new date and time API formatting and parsing examples.

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

You might also like...

Digital Ocean

The simplest cloud platform for developers & teams. Start with a $200 free credit.

Buy me a coffee ☕

If you enjoy reading my articles and want to help me out paying bills, please consider buying me a coffee ($5) or two ($10). I will be highly grateful to you ✌️

Enter the number of coffees below:

✨ Learn to build modern web applications using JavaScript and Spring Boot

I started this blog as a place to share everything I have learned in the last decade. I write about modern JavaScript, Node.js, Spring Boot, core Java, RESTful APIs, and all things web development.

The newsletter is sent every week and includes early access to clear, concise, and easy-to-follow tutorials, and other stuff I think you'd enjoy! No spam ever, unsubscribe at any time.