Использование LocalDateTime
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 56 из 59.
LocalDateTime в Java сочетает в себе дату и время. Это полезно, когда вам нужно работать с обоими компонентами, например, с расписаниями событий или временными метками.
Создать текущую дату и время
LocalDateTime now = LocalDateTime.now();Создайте конкретную дату и время:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// 2024-03-15 14:30После выполнения приведенного выше кода, dateTime содержит:
2024-03-15T14:30
Форматирование даты и времени:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));Задание
ЛегкоСоздайте метод с именем processDateTime, который принимает четыре аргумента:
- Строку (
dateTimeStr) в формате "yyyy-MM-dd HH:mm" - Целое число (
amount) для добавления или вычитания - Строку (
unit) — либо "hours", "days" или "months" - Строку (
operation) — либо "add" или "subtract"
Метод должен:
- Разобрать входную строку даты и времени
- Выполнить указанную операцию
- Вернуть отформатированную информацию о результате
Сообщения возврата должны быть:
- Если неверный формат: вернуть "Invalid date time format"
- Если неверный unit: вернуть "Invalid unit"
- Если неверная операция: вернуть "Invalid operation"
- При успехе: вернуть "Original: [datetime], New: [new_datetime], Day: [day_name]"
Шпаргалка
LocalDateTime объединяет дату и время в Java.
Создать текущую дату и время:
LocalDateTime now = LocalDateTime.now();Создать конкретную дату и время:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// Results in: 2024-03-15T14:30Форматировать дату и время:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));Попробуйте сами
import java.util.Scanner;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDateTime(String dateTimeStr, int amount, String unit, String operation) {
// Напишите свой код здесь
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateTimeStr = scanner.nextLine();
int amount = Integer.parseInt(scanner.nextLine());
String unit = scanner.nextLine();
String operation = scanner.nextLine();
System.out.println(processDateTime(dateTimeStr, amount, unit, operation));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
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Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов