0Pricing
Java Academy · Урок

LocalDate, LocalTime, LocalDateTime

Представляйте даты и время

«LocalDate, LocalTime, LocalDateTime» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.

Современный API дат

Начиная с Java 8 пакет java.time заменил старые и подверженные ошибкам классы Date и Calendar. Его основные типы — LocalDate, LocalTime и LocalDateTime.

Все они неизменяемы и безопасны при работе из разных потоков.

LocalDate

LocalDate представляет дату без компонента времени: год, месяц и день. LocalDate.now() возвращает сегодняшнюю дату, но в тестах следует использовать фиксированную дату, чтобы результат был предсказуемым.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date);
    }
}

Чтение частей даты

Каждый компонент можно получить с помощью getYear, getMonthValue, getDayOfMonth и удобного метода getDayOfWeek.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.getYear());
        System.out.println(date.getMonthValue());
        System.out.println(date.getDayOfWeek());
    }
}

LocalTime

LocalTime представляет время суток без даты: часы, минуты, секунды и наносекунды.

import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        LocalTime time = LocalTime.of(14, 30, 15);
        System.out.println(time);
        System.out.println(time.getHour());
    }
}

LocalDateTime

LocalDateTime объединяет дату и время в одно значение. При этом часовой пояс по-прежнему не указывается.

import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
        System.out.println(dt);
    }
}

Объединение даты и времени

Вы можете объединить LocalDate с LocalTime с помощью atTime, получив LocalDateTime.

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDate d = LocalDate.of(2026, 5, 30);
        LocalTime t = LocalTime.of(8, 0);
        LocalDateTime dt = d.atTime(t);
        System.out.println(dt);
    }
}

Неизменяемость и with

Эти типы являются неизменяемыми. Методы, такие как withYear, возвращают новую изменённую копию, не изменяя исходное значение.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate original = LocalDate.of(2026, 5, 30);
        LocalDate changed = original.withYear(2030);
        System.out.println(original);
        System.out.println(changed);
    }
}

Сравнение дат

Используйте isBefore, isAfter и isEqual, чтобы понятным образом сравнивать даты в хронологическом порядке.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate a = LocalDate.of(2026, 1, 1);
        LocalDate b = LocalDate.of(2026, 12, 31);
        System.out.println(a.isBefore(b));
        System.out.println(a.isAfter(b));
    }
}

Полезные запросы

Вспомогательные методы отвечают на распространённые вопросы, например с помощью isLeapYear и lengthOfMonth.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 2, 1);
        System.out.println(date.isLeapYear());
        System.out.println(date.lengthOfMonth());
    }
}

Разбор текста

Каждый тип может разобрать строку в формате ISO. LocalDate.parse считывает значение, например 2026-05-30.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.parse("2026-05-30");
        System.out.println(date.getMonth());
    }
}

Выбор подходящего типа

Используйте LocalDate для дней рождения и календарных дат, LocalTime — для часов работы, а LocalDateTime — для встречи, в которой сочетаются дата и время. Ни один из этих типов не содержит часовой пояс.

Быстрая проверка

Проверьте, насколько хорошо Вы усвоили основные типы для работы с датами и временем.

Итоги

Вы изучили основные типы java.time:

  • LocalDate используется для дат, LocalTime — для времени, а LocalDateTime — для обоих значений
  • Все они неизменяемы; методы with возвращают новые копии
  • Получать отдельные части значения можно с помощью getYear, getDayOfWeek и других похожих методов получения
  • Сравнивать значения можно с помощью isBefore и isAfter
  • Строки ISO разбираются с помощью parse

Часто задаваемые вопросы

Урок «LocalDate, LocalTime, LocalDateTime» бесплатный?

Да — полный текст урока «LocalDate, LocalTime, LocalDateTime» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.

Чему я научусь в уроке «LocalDate, LocalTime, LocalDateTime»?

Представляйте даты и время Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «LocalDate, LocalTime, LocalDateTime»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. LocalDate, LocalTime, LocalDateTime
  2. Instant и Duration
  3. Period и арифметика дат
  4. Форматирование с DateTimeFormatter
← Назад к Java Academy