Форматирование дат
Часть раздела Логика и управление потоком путешествия по Java на Coddy. Урок 58 из 59.
DateTimeFormatter в Java позволяет форматировать даты и время по разным шаблонам. Его можно использовать с LocalDate, LocalTime и LocalDateTime.
Создайте форматировщик с определённым шаблоном:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");Отформатируйте дату с помощью formatter:
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"
- В случае успеха: вернуть отформатированную дату
Попробуйте сами
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Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка словПотренируйтесь самостоятельно: Онлайн-компилятор Java