Класс Java LocalTime

LocalTimeявляется важным классом в API даты и времени, представленном в Java 8 (java.timeпакет), который используется для представления времени без информации о часовом поясе. Он специально обрабатывает время суток с точностью до наносекунды.


Особенности класса LocalTime

1. Неизменяемость

LocalTime — неизменяемый класс. Все операции изменения возвращают новый экземпляр, а исходный объект остаётся неизменным.

2. Нет информации о часовом поясе

LocalTime не содержит информации о часовом поясе; он представляет только локальное время.

3. Точность времени

Поддерживает точность времени от часов до наносекунд (HH:mm:ss.nnnnnnnnn).


Создание объектов LocalTime

1. Получение текущего времени

LocalTime currentTime = LocalTime.now();
System.out.println("当前时间: " + currentTime);

2. Создание с помощью метода of()

Пример

// Создать 14:30:00
LocalTime time1 = LocalTime.of(14, 30);

// Создать 09:15:30
LocalTime time2 = LocalTime.of(9, 15, 30);

// Создать 10:20:30.500 (500 миллисекунд)
LocalTime time3 = LocalTime.of(10, 20, 30, 500000000);

3. Разбор строк

LocalTime parsedTime = LocalTime.parse("08:45"); 
System.out.println("解析的时间: " + parsedTime);

Общие методы

1. Получение компонентов времени

Пример

LocalTime time = LocalTime.of(15, 45, 20, 123456789);

<p>int hour = time.getHour();       // 15
int minute = time.getMinute();   // 45
int second = time.getSecond();   // 20
int nano = time.getNano();       // 123456789

2. Сравнение времени

Пример

LocalTime time1 = LocalTime.of(10, 30);
LocalTime time2 = LocalTime.of(11, 15);

boolean isBefore = time1.isBefore(time2);  // true
boolean isAfter = time1.isAfter(time2);    // false
boolean isEqual = time1.equals(time2);     // false

3. Арифметика времени

Пример

LocalTime time = LocalTime.of(9, 0);

// Добавить 2 часа
LocalTime plusHours = time.plusHours(2); // 11:00

// Вычесть 30 минут
LocalTime minusMinutes = time.minusMinutes(30); // 08:30

// Добавить 1 час и 15 минут
LocalTime plusDuration = time.plus(Duration.ofMinutes(75)); // 10:15

4. Корректировка времени

Пример

LocalTime time = LocalTime.of(14, 30);

// Установить час на 10
LocalTime withHour = time.withHour(10);  // 10:30

// Установить минуты на 45
LocalTime withMinute = time.withMinute(45);  // 14:45

Форматирование и парсинг

1. Форматирование времени

Пример

java LocalTime time = LocalTime.of(16, 45, 30);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter); // "16:45:30"

2. Разбор строк времени

Пример

String timeString = "08:15:45 AM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
LocalTime parsedTime = LocalTime.parse(timeString, formatter);

Примеры практического применения

1. Вычисление интервала между двумя моментами времени

Пример

LocalTime start = LocalTime.of(9, 0);
LocalTime end = LocalTime.of(17, 30);
Duration duration = Duration.between(start, end);
System.out.println("Рабочие часы: " + duration.toHours() + " часов"); // 8 часов

2. Проверка, находится ли оно в пределах рабочих часов

Пример

LocalTime current = LocalTime.now();
LocalTime opening = LocalTime.of(8, 0);
LocalTime closing = LocalTime.of(22, 0);

if (current.isAfter(opening) && current.isBefore(closing)) {
    System.out.println("The store is open");
} else {
    System.out.println("The store is closed");
}

3. Создание диапазона времени

Пример

LocalTime start = LocalTime.of(8, 0);
LocalTime end = start.plusHours(8); // 16:00
System.out.println("Working hours: " + start + " to " + end);

Итог

LocalTimeявляется основным классом в API даты и времени Java 8 для работы с локальным временем. Он предоставляет богатый набор методов для создания, управления и форматирования времени. Благодаря своей неизменяемости и потокобезопасности,LocalTimeон очень хорошо подходит для использования в многопоточных средах. ОсвоениеLocalTimeиспользование этого класса может значительно упростить задачи программирования, связанные со временем.

Другие расширения