1. Обзор
В этом коротком уроке мы рассмотрим, как извлечь год , месяц и день из данного Дата на Яве.
Мы рассмотрим, как извлечь эти значения с помощью устаревшего java.util.Класс Date , а также с помощью новой библиотеки даты и времени Java 8.
В Java 8 была введена совершенно новая библиотека даты и времени по ряду веских причин . Помимо других преимуществ, новая библиотека предоставляет лучший API для таких операций, как извлечение Года , Месяца , Дня и т.д. Из заданной Даты .
И, если вы ищете более подробную статью о новой библиотеке даты и времени, посмотрите здесь .
2. Использование Java 7
Для данного java.util.Дата для извлечения отдельных полей, таких как Год , Месяц , День и т.д. первый шаг, который нам нужно сделать, – это преобразовать его в Календарь экземпляр:
Date date = // the date instance Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
Как только у нас есть экземпляр Calendar , мы можем напрямую вызвать его метод get и указать конкретное поле, которое мы хотим извлечь.
Мы можем использовать константы, присутствующие в Calendar , для извлечения определенных полей.
2.1. Получить Год
Чтобы извлечь год, мы можем вызвать get , передав Календарь.ГОД в качестве аргумента:
calendar.get(Calendar.YEAR);
2.2. Получить месяц
Аналогично, чтобы извлечь месяц, мы можем вызвать get , передав Календарь.МЕСЯЦ в качестве аргумента:
calendar.get(Calendar.MONTH);
Обратите внимание, что месяцы в Календаре индексируются с нулевой индексацией; для января этот метод вернет 0.
2.3. Получить День
Наконец, чтобы извлечь день, мы вызываем get , передавая Календарь.DAY_OF_MONTH в качестве аргумента:
calendar.get(Calendar.DAY_OF_MONTH);
3. Использование Java 8
Новый Новый пакет содержит ряд классов, которые могут быть использованы для представления Дата .
Каждый класс отличается дополнительной информацией, которую он хранит в дополнение к Дате .
Основные Локальные данные содержат только информацию о дате, в то время как LocalDateTime содержит данные, а также информацию о времени.
Аналогично, более продвинутые классы, такие как OffsetDateTime и ZonedDateTime , содержат дополнительную информацию о смещении от UTC и информацию о часовом поясе соответственно.
В любом случае, все эти классы поддерживают прямые методы для извлечения информации о годе, месяце и дате.
Давайте рассмотрим эти методы для извлечения информации из Локальных данных имени экземпляра локальной даты .
3.1. Получить Год
Чтобы извлечь Год, LocalDate просто предоставляет метод getYear :
localDate.getYear();
3.2. Получить месяц
Аналогично, чтобы извлечь Месяц, мы используем getMonthValue API:
localDate.getMonthValue();
В отличие от Calendar , Месяцы в Local Date индексируются с 1; для января это вернет 1.
3.3. Получить День
Наконец, чтобы извлечь День, у нас есть getDayOfMonth метод:
localDate.getDayOfMonth();
4. Заключение
В этом кратком руководстве мы изучили, как извлечь целочисленные значения Год , Месяц и День из Дата в Java.
Мы показали, как извлечь эти значения, используя старые классы Date и Calendar , а также новую библиотеку даты и времени Java8.
Полный исходный код фрагментов, используемых в этом учебнике, доступен на Github .