Полное руководство по форматированию дат в Java: методы и примеры

Обработка форматирования даты в Java — обычная задача во многих приложениях. Класс SimpleDateFormat предоставляет гибкий и мощный способ анализа и форматирования дат в соответствии с определенными шаблонами. В этой статье мы рассмотрим различные методы переформатирования дат с помощью класса SimpleDateFormat, а также примеры кода.

Метод 1: использование SimpleDateFormat
Класс SimpleDateFormat позволяет указать шаблон для анализа и форматирования дат. Вот пример того, как его использовать:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateReformatter {
    public static void main(String[] args) throws ParseException {
        String text = "2024-02-02";
        SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat outputFormat = new SimpleDateFormat("dd/MM/yyyy");

        Date date = inputFormat.parse(text);
        String reformattedDate = outputFormat.format(date);

        System.out.println(reformattedDate); // Output: 02/02/2024
    }
}

Метод 2: использование DateTimeFormatter (Java 8+)
Начиная с Java 8, класс DateTimeFormatter предоставляет более современный и потокобезопасный способ форматирования дат. Вот пример:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateReformatter {
    public static void main(String[] args) {
        String text = "2024-02-02";
        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        LocalDate date = LocalDate.parse(text, inputFormatter);
        String reformattedDate = date.format(outputFormatter);
        System.out.println(reformattedDate); // Output: 02/02/2024
    }
}

Метод 3: использование Apache Commons Lang
Если вы используете библиотеку Apache Commons Lang, вы можете использовать класс DateUtils для форматирования даты. Вот пример:

import org.apache.commons.lang3.time.DateUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateReformatter {
    public static void main(String[] args) throws ParseException {
        String text = "2024-02-02";
        SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat outputFormat = new SimpleDateFormat("dd/MM/yyyy");
        Date date = inputFormat.parse(text);
        String reformattedDate = outputFormat.format(date);
        System.out.println(reformattedDate); // Output: 02/02/2024
    }
}

В этой статье мы рассмотрели различные методы переформатирования дат в Java. Мы рассмотрели использование SimpleDateFormat, DateTimeFormatter (Java 8+) и DateUtils Apache Commons Lang. Каждый метод предлагает свой подход к форматированию даты, что позволяет вам выбрать тот, который лучше всего соответствует вашим потребностям. Освоив эти методы, вы сможете легко манипулировать датами и отображать их в нужном формате в своих Java-приложениях.