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 на основе уже существующего:
|
Добавляет секунды к текущему моменту времени |
|
Добавляет миллисекунды |
|
Добавляет наносекунды |
|
Вычитает секунды |
|
Вычитает миллисекунды |
|
Вычитает наносекунды |
Примеры:
| Код | Вывод на экран |
|---|---|
|
|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ