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

Узнайте, как получить текущую дату и/или время в Java. Обратите внимание, что соответствующий способ обработки информации о дате и времени отличается до и после JDK 8.

  • Для JDK 8 и более поздних версий рекомендуется использовать классы LocalDate и LocalTime.
  • Для JDK 7 и более ранних версий мы можем использовать только классы Date и Calendar.

1. Получить текущую дату и время(Java 8 или более поздняя версия)

1.1 Основные классы

В Java 8 или более поздней версии информация о дате и времени представлена следующими классами. Эти классы предоставляют пользователю текущую дату и время локально, и с ними не связана информация о часовом поясе.

  • java.time.LocalDate – представляет только информацию о дате в формате гггг-ММ-дд.
  • java.time.LocalTime – представляет информацию только о времени в формате HH:mm:ss.SSSSSSSS.
  • java.time.LocalDateTime – представляет информацию о дате и времени, обе, без информации о часовом поясе. Шаблон представляет собой комбинацию локальной информации о дате и времени.

Чтобы получить текущую информацию о дате и времени в другом часовом поясе/локали, мы можем использовать следующие классы.

  • java.time.ZonedDateTime – представляет информацию о дате и времени в заданном часовом поясе.

1.2 Примеры кода

Следующий код показывает, как получить текущую информацию о дате и времени с помощью метода now() в каждом классе. Метод now() возвращает неизменяемый и потокобезопасный экземпляр класса, для которого он вызывается.

// Get current dateLocalDate today = LocalDate.now();System.out.println(today); //2022-02-15// Get current timeLocalTime now = LocalTime.now();System.out.println(now); //12:43:51.519251200// Get current date and timeLocalDateTime instance = LocalDateTime.now();System.out.println(instance); //2022-02-15T12:43:51.519251200

Чтобы получить информацию о дате и времени для конкретного часового пояса, передайте информацию о часовом поясе в методе ZonedDateTime.now().

// Get current date and time in GMTZonedDateTime tzInstance = ZonedDateTime.now(ZoneId.of("GMT"));System.out.println(tzInstance); //2022-02-15T07:13:51.519251200Z[GMT]

1.3 Отображение форматированной даты и времени

По умолчанию строковые представления указанных выше классов фиксированы. Если мы хотим отобразить информацию в каком-то пользовательском шаблоне, мы можем использовать класс DateTimeFormatter.

LocalDateTime instance = LocalDateTime.now();DateTimeFormatter formatter= DateTimeFormatter.ofPattern("dd-MM-yyyy hh:mm");String formattedString = formatter.format(instance); //15-02-2022 12:43

2. Получить текущую дату и время(Java 7 или более ранняя версия)

2.1 Основные классы

До версии 7 или более ранних Java не имела отдельных классов для частей даты и времени. Основными классами были:

  • java.util.Дата
  • java.util.Календарь

2.2 Примеры кода

Давайте кратко рассмотрим методы, используемые для получения текущей информации о дате и времени в устаревших классах Java.

Date date = new Date();System.out.println(date); //Tue Feb 15 13:00:31 IST 2022Calendar cal = Calendar.getInstance();System.out.println(cal); 

2.3 Отображение форматированной даты и времени

Для отображения даты и времени в пользовательском формате следует использовать класс SimpleDateFormat.

Date date = new Date();Calendar cal = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm");System.out.println(sdf.format(date)); //15-02-2022 01:04System.out.println(sdf.format(cal.getTime())); //15-02-2022 01:04

Исходный код Скачать

Прокрутить вверх