Форматирование дат
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 58 из 59.
DateTimeFormatter в Java позволяет форматировать даты и время по различным шаблонам. Он может использоваться с LocalDate, LocalTime и LocalDateTime.
Создайте форматтер с определённым шаблоном:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");Форматируйте дату с помощью форматтера:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);После выполнения приведенного выше кода, formatted содержит:
2024-03-15
Разобрать строку в дату:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);Задание
ЛегкоСоздайте метод с именем formatDate, который принимает три аргумента:
- Строка (
dateStr) в формате "yyyy-MM-dd" - Строка (
inputPattern) — шаблон входной даты - Строка (
outputPattern) — желаемый шаблон вывода
Метод должен:
- Разобрать входную дату с использованием шаблона ввода
- Отформатировать её с использованием шаблона вывода
- Обработать эти шаблоны:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": Фактическая строка шаблона
Возвращаемые сообщения должны быть:
- Если дата недействительна: возвращать "Invalid date format"
- Если шаблон недействителен: возвращать "Invalid pattern"
- При успехе: возвращать отформатированную дату
Шпаргалка
DateTimeFormatter позволяет форматировать даты и время с использованием конкретных шаблонов:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");Форматируйте дату с помощью форматтера:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);Разберите строку в дату:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);Попробуйте сами
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String formatDate(String dateStr, String inputPattern, String outputPattern) {
// Напишите свой код здесь
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
String inputPattern = scanner.nextLine();
String outputPattern = scanner.nextLine();
System.out.println(formatDate(dateStr, inputPattern, outputPattern));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах4HashSet Часть 1
Что такое HashSet?Добавление элементаУдаление элементаПроверка наличия элементаПустота и размерОчистка и клонированиеПовторение - HashSet10Даты и время
Основы LocalDateОперации с LocalTimeИспользование LocalDateTimePeriod и DurationФорматирование датРабота с часовыми поясами2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов