1. Клас LocalTime

Клас LocalTime створено для випадків, коли потрібно працювати лише з часом без дати. Наприклад, ви пишете програму-будильник. Час для вас важливий, а дата — ні.

Клас LocalTime дуже схожий на клас LocalDate — його об'єкти теж не можна змінювати після створення.

Отримання поточного часу

Для створення нового об'єкта класу LocalTime слід скористатися статичним методом now(). Приклад:

LocalTime time = LocalTime.now();

де time — це змінна класу LocalTime, а LocalTime.now() — виклик статичного методу now() для класу LocalTime.

Приклад:

Код Виведення на екран
LocalTime time = LocalTime.now();
System.out.println("Зараз = " + time);

Зараз = 09:13:13.642881600

Після крапки вказується поточне значення наносекунд.

2. Отримання заданого часу

Щоб отримати заданий час, слід скористатися статичним методом of(). Приклад:

LocalTime time = LocalTime.of(години, хвилини, секунди, наносекунди);

в який можна передати години, хвилини, секунди й наносекунди.

Приклад:

Код Виведення на екран
LocalTime time = LocalTime.of(12, 15, 0, 100);
System.out.println("Зараз = " + time);
Зараз = 12:15:00.000000100

Є, до речі, ще дві модифікації цього методу:

LocalTime time = LocalTime.of(години, хвилини, секунди);

і

LocalTime time = LocalTime.of(години, хвилини);

Тож можете користуватися тим, яким вам зручніше.

Отримання часу за номером секунди

Також можна отримати час за номером секунди в добі: для цього є спеціальний статичний метод ofSecondOfDay():

LocalTime time = LocalTime.ofSecondOfDay(секунди);

де секунди — це кількість секунд, які минули від початку доби.

Приклад:

Код Виведення на екран
LocalTime time = LocalTime.ofSecondOfDay(10000);
System.out.println(time);

02:46:40

Так, 10 тисяч секунд — це трохи менше трьох годин. Усе правильно.

3. Отримання фрагментів часу

Для того щоб з об'єкта LocalTime отримати значення певного елемента часу, використовують спеціальні методи:

Метод Опис
int getHour()
Повертає години
int getMinute()
Повертає хвилини
int getSecond()
Повертає секунди
int getNano()
Повертає наносекунди

Приклад:

Код Виведення на екран
LocalTime now = LocalTime.now();
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
System.out.println(now.getNano());

2
46
40
0

4. Змінення часу в об'єкті класу LocalTime

Клас LocalTime також містить методи, які дають змогу працювати з часом. Ці методи реалізовано за аналогією до методів класу LocalDate: кожен із них не змінює наявний об'єкт LocalTime, а повертає новий із потрібними даними.

Отакі методи має клас LocalTime:

Метод Опис
plusHours(int hours)
Додає години
plusMinutes(int minutes)
Додає хвилини
plusSeconds(int seconds)
Додає секунди
plusNanos(int nanos)
Додає наносекунди
minusHours(int hours)
Віднімає години
minusMinutes(int minutes)
Віднімає хвилини
minusSeconds(int seconds)
Віднімає секунди
minusNanos(int nanos)
Віднімає наносекунди

Приклад:

Код Виведення на екран
LocalTime time = LocalTime.now();
LocalTime time2 = time.plusHours(2);
LocalTime time3 = time.minusMinutes(40);
LocalTime time4 = time.plusSeconds(3600);

System.out.println(time);
System.out.println(time2);
System.out.println(time3);
System.out.println(time4);





10:33:55.978012200
12:33:55.978012200
09:53:55.978012200
11:33:55.978012200

Зверніть увагу, що кожного разу ми отримуємо новий час відносно першого об'єкта time. Якщо додати до часу 3600 секунд, це буде рівно 1 година.