Как получить текущую дату и время в Java
Описание проблемы:
Я пытаюсь получить текущую дату и время в Java, но не уверен, какой метод следует использовать. Перепробовал несколько подходов, но не могу определить, какой из них самый эффективный и рекомендуемый.
Я нашел вопрос на StackOverflow с аналогичной проблемой, где уже есть несколько ответов, но он был закрыт 4 года назад. Возможно, с тех пор появились новые более обновленные способы решения данной задачи.
Может кто-то подсказать, как лучше всего получить текущую дату и время в Java, чтобы использовать наиболее актуальный и оптимальный метод?
5 ответ(ов)
Внимание: это решение подходит только для версий Java ниже 8. Для Java 8 и выше смотрите другие ответы.
Если вам просто нужно вывести временную метку в формате YYYY.MM.DD-HH.MM.SS (очень распространенный случай), вот как это можно сделать:
String timeStamp = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss").format(Calendar.getInstance().getTime());
Обратите внимание, что в формате используется точка для разделения годов, месяцев и дней, а также часов, минут и секунд.
Если вам нужно получить текущую дату в виде строки, попробуйте следующий код:
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.
Чтобы создать объект Date
, вам просто нужно использовать конструктор этого класса. Вот пример:
import java.util.Date;
Date date = new Date();
Это создаст новый объект Date
, который будет содержать текущее время и дату. Не забудьте импортировать класс Date
из пакета java.util
. Если у вас есть дополнительные вопросы по поводу использования объекта Date
, не стесняйтесь спрашивать!
Ваш код демонстрирует различные способы работы с датами и временем в Java. Вот краткое описание каждой строки и формат, в котором выводится информация:
System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );
- Отображает текущую дату и время в формате
ГГГГ/ММ/ДД ЧЧ:ММ:СС
, например:2015/09/27 15:07:53
.
- Отображает текущую дату и время в формате
System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );
- Выводит текущее время в формате
ЧЧ:ММ:СС
, например:15:07:53
.
- Выводит текущее время в формате
System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));
- Отображает текущую дату в формате
ММ/ДД/ГГГГ
, например:09/28/2015
.
- Отображает текущую дату в формате
System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );
- Выводит дату и время в формате
ГГГГММДД_ЧЧММСС
, например:20150928_161823
.
- Выводит дату и время в формате
System.out.println( Calendar.getInstance().getTime() );
- Показывает текущее время в формате по умолчанию:
Mon Sep 28 16:24:28 CEST 2015
.
- Показывает текущее время в формате по умолчанию:
System.out.println( new Date(System.currentTimeMillis()) );
- Выводит текущее время на основе системных миллисекунд:
Mon Sep 28 16:24:51 CEST 2015
.
- Выводит текущее время на основе системных миллисекунд:
System.out.println( new Date().toString().substring(0, 10) );
- Отображает строку с текущей датой (первые 10 символов):
Mon Sep 28
.
- Отображает строку с текущей датой (первые 10 символов):
System.out.println( new java.sql.Date(System.currentTimeMillis()) );
- Выводит дату в SQL формате:
2015-09-28
.
- Выводит дату в SQL формате:
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
.
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`.
System.out.println( LocalTime.now().getHour() );
- Отображает текущий час:
16
.
- Отображает текущий час:
System.out.println( LocalDateTime.now() );
- Показывает текущее локальное время и дату:
2015-09-28T16:16:23.315
.
- Показывает текущее локальное время и дату:
Если у вас будут вопросы по конкретным методам или по формату вывода, не стесняйтесь спрашивать!
Вы можете использовать следующий код для получения временной метки в формате "yyyyMMdd_HHmmss":
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp);
Этот код успешно работает и выводит текущую дату и время в указанном формате.
Преобразование между java.time.LocalDateTime и java.util.Date
Преобразование java.util.Date в java.time.LocalDate
В чем разница между Instant и LocalDateTime?
Как объявить массив в одну строку?
Создание репозитория Spring без сущности