8

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

34

Описание проблемы:

Я пытаюсь получить текущую дату и время в Java, но не уверен, какой метод следует использовать. Перепробовал несколько подходов, но не могу определить, какой из них самый эффективный и рекомендуемый.

Я нашел вопрос на StackOverflow с аналогичной проблемой, где уже есть несколько ответов, но он был закрыт 4 года назад. Возможно, с тех пор появились новые более обновленные способы решения данной задачи.

Может кто-то подсказать, как лучше всего получить текущую дату и время в Java, чтобы использовать наиболее актуальный и оптимальный метод?

5 ответ(ов)

4

Внимание: это решение подходит только для версий Java ниже 8. Для Java 8 и выше смотрите другие ответы.

Если вам просто нужно вывести временную метку в формате YYYY.MM.DD-HH.MM.SS (очень распространенный случай), вот как это можно сделать:

String timeStamp = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss").format(Calendar.getInstance().getTime());

Обратите внимание, что в формате используется точка для разделения годов, месяцев и дней, а также часов, минут и секунд.

1

Если вам нужно получить текущую дату в виде строки, попробуйте следующий код:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

или

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

Эти примеры используют класс SimpleDateFormat для форматирования текущей даты и времени. Вы можете найти дополнительную информацию здесь: mkyong.com.

0

Чтобы создать объект Date, вам просто нужно использовать конструктор этого класса. Вот пример:

import java.util.Date;

Date date = new Date();

Это создаст новый объект Date, который будет содержать текущее время и дату. Не забудьте импортировать класс Date из пакета java.util. Если у вас есть дополнительные вопросы по поводу использования объекта Date, не стесняйтесь спрашивать!

0

Ваш код демонстрирует различные способы работы с датами и временем в Java. Вот краткое описание каждой строки и формат, в котором выводится информация:

  1. System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );

    • Отображает текущую дату и время в формате ГГГГ/ММ/ДД ЧЧ:ММ:СС, например: 2015/09/27 15:07:53.
  2. System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );

    • Выводит текущее время в формате ЧЧ:ММ:СС, например: 15:07:53.
  3. System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));

    • Отображает текущую дату в формате ММ/ДД/ГГГГ, например: 09/28/2015.
  4. System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );

    • Выводит дату и время в формате ГГГГММДД_ЧЧММСС, например: 20150928_161823.
  5. System.out.println( Calendar.getInstance().getTime() );

    • Показывает текущее время в формате по умолчанию: Mon Sep 28 16:24:28 CEST 2015.
  6. System.out.println( new Date(System.currentTimeMillis()) );

    • Выводит текущее время на основе системных миллисекунд: Mon Sep 28 16:24:51 CEST 2015.
  7. System.out.println( new Date().toString().substring(0, 10) );

    • Отображает строку с текущей датой (первые 10 символов): Mon Sep 28.
  8. System.out.println( new java.sql.Date(System.currentTimeMillis()) );

    • Выводит дату в SQL формате: 2015-09-28.
Date d = new Date();
System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );
  • Отображает текущее время в формате ЧЧ:ММ:СС, используя вычисления по миллисекундам: 14:32:26.
  1. System.out.println( new Timestamp(System.currentTimeMillis()) );

    • Выводит текущую дату и время с миллисекундами: 2015-09-28 17:12:35.584.
System.out.println( ZonedDateTime.now() );
- Показывает текущую дату и время с учетом часового пояса: `2015-09-28T16:16:23.308+02:00[Europe/Belgrade]`.
System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );
- Форматирует текущее время по стандарту RFC 1123: `Mon, 28 Sep 2015 16:16:23 +0200`.
System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) );
- Выводит локальную дату для часового пояса Парижа: `2015-09-28`.
  1. System.out.println( LocalTime.now().getHour() );

    • Отображает текущий час: 16.
  2. System.out.println( LocalDateTime.now() );

    • Показывает текущее локальное время и дату: 2015-09-28T16:16:23.315.

Если у вас будут вопросы по конкретным методам или по формату вывода, не стесняйтесь спрашивать!

0

Вы можете использовать следующий код для получения временной метки в формате "yyyyMMdd_HHmmss":

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp);

Этот код успешно работает и выводит текущую дату и время в указанном формате.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь