Рубрики
Без рубрики

Извлечение года, месяца и дня из даты в Java

Краткое руководство по извлечению частей даты с помощью java 8 и java

Автор оригинала: baeldung.

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 .