Java 8 New Date/Time API - Часть 2

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 8. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!

1. Введение

В предыдущей статье мы узнали, как создать дату и время в Java 8. В этой статье мы рассмотрим добавление и отнимание дат и времени.

2. Добавление в LocalDate

Для добавления нескольких дней или чего-то другого в LocalDate существуют методы plus(), plusDays(),  plusWeeks(), plusMonths()

При добавлении к LocalDate всегда создается новый экземпляр класса т.к. все классы в новом API являются неизменяемыми.

Метод plus() перегружен и принимает либо TemporalAmount (интерфейс, реализации - Duration, Period) либо количество того, что мы хотим добавить и собственно ChronoUnit (enum, есть значение от NANOS до FOREVER). Не все ChronoUnit являются валидными для LocalDate. К примеру, нельзя добавить время (секунды, минуты часы и тд.) и бесконечность.

 3. Отнимание в LocalDate

Отнимание схоже с добавлением

На счет ChronoUnit действуют те же правила, что и для добавления.

Забавно то, что можно отнять отрицательное число (как и добавить отрицательное) и это будет валидно!

4. Добавление в LocalTime

Добавить к LocalTime можно от наносекунд до полудня

В данном случае валидными ChronoUnit считаются только те, которые относятся ко времени, а не датам. К примеру, при использовании ChronoUnit.DAYS мы получим UnsupportedTemporalTypeException.

5. Отнимание в LocalTime

Все так же как и в добавлении

Не баг а фича с отрицательным добавлением/отниманием также работает.

 

6. Добавление и отнимание в LocalDateTime

Поскольку LocalDateTime это и дата и время, то методы по добавлению/отниманию просто делегируют исполнение методам из LocalDate и LocalTime.

Добавление

Отнимание

И тут также работает фишка с отрицательным добавление/отниманием (методы ведь делегируют все). ChronoUnit в этом случае можно выбирать любой (кроме бесконечности, конечно же).

В следующей статье мы рассмотрим сравнение дат и времени. Спасибо, что были с нами 🙂

 Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.

 

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr
Самоучители--узнать детальнее--