1. Клас LocalDateTime
Клас LocalDateTime
поєднує в собі можливості класів LocalDate
і LocalTime
: він зберігає і дату, і час. Його об'єкти теж незмінювані, а його методи також аналогічні методам класів LocalDate
і LocalTime
.
Отримання поточного моменту: дата й час
Тут усе в межах очікувань: теж використовується метод now()
. Приклад:
Код | Виведення на екран |
---|---|
|
|
Під час виведення на екран дата й час розділяються літерою T
.
Отримання певного моменту: дата й час
Як можна очікувати, усе аналогічно класам LocalDate
і LocalTime
— використовується метод of()
:
… = LocalDateTime.of(рік, місяць, день, години, хвилини, секунди);
Спочатку йдуть параметри, що задають дату, у тих самих форматах, що й у класі LocalDate
. Потім ідуть параметри, що задають час, у тих самих форматах, що й у класі LocalTime
. Нижче наведено список усіх варіацій методу of()
:
Методи |
---|
|
|
|
|
|
|
|
Можна задати дату явно або за допомогою об'єктів LocalDate
і LocalTime
:
Код |
---|
|
Виведення на екран |
|
Клас LocalDateTime
має методи отримання фрагмента дати та/або часу. Вони абсолютно аналогічні методам класів LocalDate
і LocalTime
. Дублювати їх тут ми не будемо.
2. Клас Instant
Крім того, розробники Java не забули про вподобання старої школи.
У Date Time API додали клас Instant для роботи з часом, пов'язаним із процесами всередині комп'ютерів. Замість годин, хвилин і секунд, він оперує секундами, мілісекундами й наносекундами.
Цей клас зберігає в собі два поля:
- кількість секунд, які минули з 1 січня 1970 року
- кількість наносекунд
Клас створено для розробників? Так. Тому він знову рахує час в Unix-time: від початку 1970 року.
Можна навіть сказати, що клас Instant
— це спрощена версія класу Date
: залишили тільки те, що потрібно програмістам.
Отримати об'єкт Instant
можна так само, як об'єкт LocalTime
:
Instant timestamp = Instant.now();
де timestamp
— це змінна класу Instant
, а Instant.now()
— виклик статичного методу now()
для класу Instant
.
Приклад:
Код | Виведення на екран |
---|---|
|
|
Також можна створити новий об'єкт за допомогою різновидів методу of()
, якщо передати в нього час, який минув з 1 січня 1970 року:
|
Потрібно передати кількість мілісекунд |
|
Потрібно передати кількість секунд |
|
Потрібно передати секунди й наносекунди |
Методи об'єктів Instant
Клас Instant має два методи, що повертають його значення:
|
Кількість секунд, які минули з 1 січня 1970 року |
|
Наносекунди |
|
Кількість мілісекунд, які минули з 1 січня 1970 року |
А ще є методи, здатні створювати нові об'єкти Instant
на основі вже наявного:
|
Додає секунди до поточного моменту часу |
|
Додає мілісекунди |
|
Додає наносекунди |
|
Віднімає секунди |
|
Віднімає мілісекунди |
|
Віднімає наносекунди |
Приклади:
Код | Виведення на екран |
---|---|
|
|