Анализ даты из строки

Java:
Анализ даты из строки

Как это сделать:

В Java для этой задачи существует класс java.time.format.DateTimeFormatter. Вот как с ним работать.

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

public class DateParser {

    public static void main(String[] args) {
        String dateString = "2023-03-15";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        try {
            LocalDate date = LocalDate.parse(dateString, formatter);
            System.out.println("Разобранная дата: " + date);
        } catch (DateTimeParseException e) {
            System.err.println("Ой, дата была в неправильном формате!");
        }
    }
}

Запустите этот маленький скрипт, и вы увидите:

Разобранная дата: 2023-03-15

Подробнее

Задолго до того, как java.time вошел в моду с Java 8 в 2014 году, люди мучились с java.util.Date и SimpleDateFormat. Эти старички не только враждебны к потокам, но и доставляют головную боль с их капризами часовых поясов.

В наши дни java.time - это новый крик моды. Он потокобезопасен, неизменяемый (без коварных изменений) и более понятный в намерениях. К тому же, вы можете выбрать из набора предопределенных форматеров или создать свой с использованием шаблонов.

Альтернативы, спрашиваете? Библиотеки, такие как Joda-Time, прокладывали путь, но поскольку java.time многому научился у их идей, большинство отказалось от них в пользу стандартной библиотеки.

Внутри, разбор с помощью DateTimeFormatter выполняет тяжелую работу. Он проверяет шаблоны, валидирует ввод, обрабатывает исключения и доставляет блестящий LocalDate, LocalTime или даже ZonedDateTime в зависимости от того, что вы ищете.

Смотрите также