Как получить текущее время в формате YYYY-MM-DD HH:MI:Sec.Millisecond в Java?
У меня есть следующий код, который возвращает текущее время. Однако он не учитывает миллисекунды.
public static String getCurrentTimeStamp() {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy
Date now = new Date();
String strDate = sdfDate.format(now);
return strDate;
}
В результате у меня получается дата в формате YYYY-MM-DD HH:MM:SS
(например, 2009-09-22 16:47:08
).
Но я хочу получить текущее время в формате YYYY-MM-DD HH:MM:SS.MS
(например, 2009-09-22 16:47:08.128
, где 128
— это миллисекунды).
SimpleDateFormat
отлично работает, но его минимальная единица времени — это секунда. Как мне получить также и миллисекунды?
5 ответ(ов)
В вашем коде вы создаете экземпляр класса SimpleDateFormat
с помощью следующей строки:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Эта строка формирует шаблон для форматирования и разбора дат в Java. Вот расшифровка этого шаблона:
yyyy
- четырехзначный годMM
- двухзначный месяц (01-12)dd
- двухзначный день месяца (01-31)HH
- двухзначный час в 24-часовом формате (00-23)mm
- двухзначные минуты (00-59)ss
- двухзначные секунды (00-59)SSS
- трехзначные миллисекунды (000-999)
Такой формат позволяет вам работать с временными метками, включающими миллисекунды, что может быть полезно в различных приложениях, где требуется высокая точность времени. Если у вас есть дополнительные вопросы о форматах дат или использовании SimpleDateFormat
, не стесняйтесь задавать!
Вам нужно получить текущую метку времени в стиле JDK 8, вот как это можно сделать одним выражением:
public String getCurrentLocalDateTimeStamp() {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
}
Здесь мы используем LocalDateTime.now()
для получения текущего локального времени, а затем форматируем его с помощью DateTimeFormatter
с заданным шаблоном. Это более современный и удобный способ работы с датой и временем в Java.
Вы можете использовать класс SimpleDateFormat
для форматирования даты в Java. Вот пример, который можно попробовать:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
Date date = new Date();
System.out.println(dateFormat.format(date));
Также, вы можете использовать Calendar
, чтобы получить текущее время:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
Эти примеры помогут вам вывести текущее время в нужном формате. Не забудьте импортировать необходимые классы из пакета java.text
и java.util
.
Чтобы отобразить дату и время с миллисекундами на Java, вы можете использовать класс LocalDateTime
вместе с DateTimeFormatter
. Вот простой пример:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class MyClass {
public static void main(String[] args) {
// Получаем текущее время и дату
LocalDateTime myObj = LocalDateTime.now();
// Создаем форматтер для отображения нужного формата даты и времени
DateTimeFormatter myFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
// Форматируем текущую дату и время
String forDate = myObj.format(myFormat);
// Выводим результат в консоль
System.out.println("Дата и время: " + forDate);
}
}
В этом коде мы сначала получаем текущее время с помощью LocalDateTime.now()
. Затем создаем DateTimeFormatter
, указывая желаемый формат, который включает год, месяц, день, часы, минуты, секунды и миллисекунды. После этого мы форматируем дату и время с помощью метода format()
и выводим результат на экран.
В дополнение к вышеуказанным ответам, вот небольшой рабочий пример программы на Java, которая выводит текущее время и дату с миллисекундами:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] argv) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date now = new Date();
String strDate = sdf.format(now);
System.out.println(strDate);
}
}
Этот код использует класс SimpleDateFormat
для форматирования даты и времени. Объект Date
создается для получения текущей даты и времени, а затем форматируется в строку с миллисекундами. Выходной результат будет выглядеть, например, так: 2023-10-03 14:23:45.123
. Не забудьте, что нужно импортировать необходимые классы для работы с датами и форматами.
Почему вычитание этих двух временных меток (эпохи в миллисекундах) из 1927 года даёт странный результат?
Сортировка ArrayList пользовательских объектов по свойству
Преобразование строки в дату в Java
Как получить текущую дату и время в UTC или GMT в Java?
Где найти документацию по форматированию даты в JavaScript?