Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить текущую дату и время

Короткий ответ

Классы из пакета java.time возвращают текущие значения через now():

void main() {
    IO.println(LocalDate.now());
    IO.println(LocalTime.now());
    IO.println(LocalDateTime.now());
}

Результат:

2026-10-04
06:22:22.014925300
2026-10-04T06:22:22.015926700

Вы увидите своё текущее время. LocalDate — только дата, LocalTime — только время, LocalDateTime — и то и другое без часового пояса.

В нужном часовом поясе

now() использует часовой пояс компьютера. Передайте ZoneId, чтобы узнать время в другом месте:

void main() {
    IO.println(ZonedDateTime.now(ZoneId.of("Europe/Berlin")));
    IO.println(ZonedDateTime.now(ZoneId.of("Asia/Tokyo")));
}

Результат:

2026-10-04T08:22:21.174894100+02:00[Europe/Berlin]
2026-10-04T15:22:21.212486100+09:00[Asia/Tokyo]

Момент времени

Instant — момент на шкале времени в UTC. Его используют для журналов и хранения в базе:

void main() {
    Instant now = Instant.now();
 
    IO.println(now);
    IO.println(now.toEpochMilli());
}

Результат:

2026-10-04T06:22:22.378958700Z
1791094942378

Отдельные части

Из даты можно получить год, месяц, день и день недели:

void main() {
    LocalDate today = LocalDate.now();
    IO.println(today.getYear() + " " + today.getMonth() + " " + today.getDayOfMonth() + " " + today.getDayOfWeek());
}

Результат:

2026 OCTOBER 4 SUNDAY

Частая ошибка

Использовать старые классы Date и Calendar. Они изменяемые, месяцы в Calendar нумеруются с нуля, а Date.toString() выводит дату в неудобном формате. В новом коде используйте java.time, а Date встречайте только на границе со старыми библиотеками — date.toInstant() переводит её в новый API.

Функции из этого ответа

  • LocalDate.now() — Возвращает сегодняшнюю дату по часам и часовому поясу компьютера.
  • LocalDateTime — Дата и время без часового пояса — например, время встречи в календаре.
  • ZonedDateTime — Дата и время в конкретном часовом поясе — с учётом летнего времени.
  • Instant — Точный момент времени на временной шкале UTC — для логов, меток времени и замеров.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.