Java 8 New Date/Time API - Часть 1
Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 8. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!
1. Введение
Из предыдущей статьи мы узнали, что из себя представляет Date/Time API в Java 8. В этой статье мы рассмотрим получение текущей (и не только) даты и времени.
2. Как получить текущую дату и/или время?
В Java 8 - легко. У классов LocalDate, LocalTime и LocalDateTime есть статический метод now(), который и возвращает текущую дату, время
1 2 3 |
LocalDate.now(); // 2018-01-20 LocalTime.now(); // 08:07:35.113028 LocalDateTime.now();// 2018-01-20T08:07:35.113120 |
Стоит отметить, что отображается именно локальное время, не привязанное к какой либо временной зоне.
3. Как задать нужную дату?
Используя следующие методы
1 2 3 |
LocalDate.of(2020, Month.SEPTEMBER, 23); // 2020-09-23 LocalDate.of(2021, 1, 1); // 2021-01-01 LocalDate.ofYearDay(2020, 361); // 2020-12-26 |
Метод of() перегружен и принимает год, месяц (либо enum либо номер месяца) и день. Метод ofYearDay() принимает год и день года, начиная с 1 до 365/366. Данные методы, на практике, используются чаще всего, но также есть методы ofEpochDate() и ofInstant().
4. Как задать нужное время?
Используя методы of(), ofSecondsOfDay(), ofNanoOfDay()
1 2 3 4 5 |
LocalTime.of(12, 10); // 12:10 LocalTime.of(18, 15, 10); // 18:15:10 LocalTime.of(23, 59, 59, 700); // 23:59:59.000000700 LocalTime.ofSecondOfDay(9_124); // 02:32:04 LocalTime.ofNanoOfDay(100_000_000_000L); // 00:01:40 |
Метод of() перегружен и принимает часы, минуты + секунды + наносекунды. Метод ofSecondsOfDay() принимает колличество секунд с начала дня, а метод ofNanoOfDay() колличество наносекунд. Также есть метод ofInstant(), но он используется не так часто.
5. Как задать нужную дату и время?
Поскольку LocalDateTime является объединением LocalDate и LocalTime, то и методы их схожи
1 2 3 4 5 6 7 |
LocalDateTime.of(1992, Month.AUGUST, 24, 12, 0); // 1992-08-24T12:00 LocalDateTime.of(2004, Month.AUGUST, 23, 17, 15, 2); // 2004-08-23T17:15:02 LocalDateTime.of(2008, Month.JANUARY, 6, 20, 45, 2, 2); // 2008-01-06T20:45:02.000000002 LocalDateTime.of(2009, 1, 13, 9, 7); // 2009-01-13T09:07 LocalDateTime.of(2012, 4, 4, 6, 16); // 2012-04-04T06:16 LocalDateTime.of(2018, 10, 14, 4, 20); // 2018-10-14T04:20 LocalDateTime.of(LocalDate.now(), LocalTime.now()); // 2018-01-20T09:19:48.603054 |
Как видим, дата и время разделены буквой 'T'. Метод of() также может принимать LocalDate и LocalTime, что упрощает получение даты и времени.
В следующей статье мы рассмотрим добавление и отнимание дат и времени. Спасибо, что были с нами 🙂
Есть возможность записаться на наши курсы по Java. Детальнее - у нас на сайте.