Java DateTimeFormatter

Introduction

DateTimeFormatter in Java, part of the java.time.format package, is used for formatting and parsing date-time objects. It provides a flexible way to handle date and time representations.

Table of Contents

  1. What is DateTimeFormatter?
  2. Creating DateTimeFormatter Instances
  3. Common Methods
  4. Examples of DateTimeFormatter
  5. Conclusion

1. What is DateTimeFormatter?

DateTimeFormatter is an immutable and thread-safe class used for formatting and parsing date-time objects. It supports various predefined and custom formats.

2. Creating DateTimeFormatter Instances

You can create DateTimeFormatter instances in several ways:

  • DateTimeFormatter.ofPattern(String pattern): Creates a formatter using a custom pattern.
  • DateTimeFormatter.ISO_LOCAL_DATE: A predefined formatter for the ISO local date format.
  • DateTimeFormatter.ISO_LOCAL_DATE_TIME: A predefined formatter for the ISO local date-time format.

3. Common Methods

  • format(TemporalAccessor temporal): Formats a date-time object.
  • parse(CharSequence text): Parses a string to a date-time object.
  • withLocale(Locale locale): Returns a copy of this formatter with a new locale.

4. Examples of DateTimeFormatter

Example 1: Formatting a LocalDate

This example demonstrates how to format a LocalDate using a custom pattern.

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

public class FormatLocalDateExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
        String formattedDate = date.format(formatter);
        System.out.println("Formatted Date: " + formattedDate);
    }
}

Output:

Formatted Date: 30-06-2024

Example 2: Parsing a Date String

Here, we parse a date string into a LocalDate using a custom pattern.

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

public class ParseDateStringExample {
    public static void main(String[] args) {
        String dateString = "30-06-2023";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
        LocalDate date = LocalDate.parse(dateString, formatter);
        System.out.println("Parsed Date: " + date);
    }
}

Output:

Parsed Date: 2023-06-30

Example 3: Using Predefined Formatters

This example shows how to use a predefined formatter to format a LocalDateTime.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class PredefinedFormatterExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        String formattedDateTime = dateTime.format(formatter);
        System.out.println("Formatted Date-Time: " + formattedDateTime);
    }
}

Output:

Formatted Date-Time: 2024-06-30T13:16:38.42381

Example 4: Formatting with Locale

In this example, we demonstrate how to format a LocalDate with a specific locale.

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

public class LocaleFormattingExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.FRANCE);
        String formattedDate = date.format(formatter);
        System.out.println("Formatted Date with Locale: " + formattedDate);
    }
}

Output:

Formatted Date with Locale: 30 juin 2024

Conclusion

The DateTimeFormatter class in Java is a versatile tool for formatting and parsing date-time objects. It supports both predefined and custom formats, allowing for flexible date and time handling. Using DateTimeFormatter can lead to more precise and readable date-time representations in your Java applications.

Comments