Java – Format LocalDate to dd-MM-yyyy

Introduction

When working with dates in Java, you often need to display a LocalDate in a specific format, such as dd-MM-yyyy. This format is commonly used in many applications, particularly in regions that follow the day-month-year convention. Java 8’s java.time package provides a powerful DateTimeFormatter class that makes formatting dates easy and intuitive.

In this guide, we’ll explore how to format a LocalDate to the dd-MM-yyyy pattern using Java 8’s DateTimeFormatter class.

Table of Contents

  • Problem Statement
  • Solution Steps
  • Java Program
    • Formatting LocalDate to dd-MM-yyyy
    • Parsing a dd-MM-yyyy String Back to LocalDate
  • Advanced Considerations
  • Conclusion

Problem Statement

The task is to create a Java program that:

  • Converts a LocalDate object to a string formatted as dd-MM-yyyy.
  • Optionally, parses a string in the dd-MM-yyyy format back into a LocalDate object.

Example:

  • Input: A LocalDate object representing 2024-08-30.
  • Output: A string formatted as 30-08-2024.

Solution Steps

  1. Use DateTimeFormatter.ofPattern(): Define a formatter with the dd-MM-yyyy pattern.
  2. Format the LocalDate: Use the format() method of LocalDate with the defined formatter.
  3. Parse the String: Convert a dd-MM-yyyy formatted string back to a LocalDate using the same formatter.

Java Program

Formatting LocalDate to dd-MM-yyyy

You can format a LocalDate to the dd-MM-yyyy format using the DateTimeFormatter class.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * Java - Format LocalDate to dd-MM-yyyy
 * Author: https://www.rameshfadatare.com/
 */
public class FormatLocalDate {

    public static void main(String[] args) {
        // Step 1: Create a LocalDate object
        LocalDate date = LocalDate.of(2024, 8, 30);

        // Step 2: Define the DateTimeFormatter with the desired pattern
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

        // Step 3: Format the LocalDate to a string
        String formattedDate = date.format(formatter);

        // Step 4: Display the formatted date
        System.out.println("Formatted Date: " + formattedDate);
    }
}

Output

Formatted Date: 30-08-2024

Explanation

  • DateTimeFormatter.ofPattern("dd-MM-yyyy") creates a formatter that follows the dd-MM-yyyy pattern.
  • date.format(formatter) converts the LocalDate into a string formatted as dd-MM-yyyy.

Parsing a dd-MM-yyyy String Back to LocalDate

If you have a date string in the dd-MM-yyyy format, you can parse it back into a LocalDate object using the same formatter.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * Java - Parse String in dd-MM-yyyy to LocalDate
 * Author: https://www.rameshfadatare.com/
 */
public class ParseDateString {

    public static void main(String[] args) {
        // Step 1: Define a date string in the dd-MM-yyyy format
        String dateString = "30-08-2024";

        // Step 2: Define the DateTimeFormatter with the desired pattern
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

        // Step 3: Parse the string to a LocalDate
        LocalDate date = LocalDate.parse(dateString, formatter);

        // Step 4: Display the LocalDate
        System.out.println("Parsed LocalDate: " + date);
    }
}

Output

Parsed LocalDate: 2024-08-30

Explanation

  • DateTimeFormatter.ofPattern("dd-MM-yyyy") is used to define the pattern that matches the input string.
  • LocalDate.parse(dateString, formatter) converts the string back to a LocalDate object using the formatter.

Advanced Considerations

  • Locale Handling: If your date strings include month or day names in different languages, you can pass a Locale object to DateTimeFormatter.ofPattern() to handle locale-specific formatting and parsing.

  • Validation: Ensure that your input strings strictly follow the dd-MM-yyyy pattern. Any deviation in the format will result in a DateTimeParseException.

  • Immutability: The LocalDate and DateTimeFormatter classes are immutable and thread-safe, making them ideal for use in concurrent applications.

Conclusion

This guide provides methods for formatting a LocalDate to the dd-MM-yyyy pattern in Java, as well as parsing a string in this format back to a LocalDate. The DateTimeFormatter class offers a flexible and powerful way to handle custom date formats, ensuring that your Java applications can easily convert between LocalDate objects and formatted date strings.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top