8

Как получить текущее время в формате YYYY-MM-DD HH:MI:Sec.Millisecond в Java?

26

У меня есть следующий код, который возвращает текущее время. Однако он не учитывает миллисекунды.

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 ответ(ов)

12

В вашем коде вы создаете экземпляр класса 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, не стесняйтесь задавать!

2

Вам нужно получить текущую метку времени в стиле JDK 8, вот как это можно сделать одним выражением:

public String getCurrentLocalDateTimeStamp() {
    return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
}

Здесь мы используем LocalDateTime.now() для получения текущего локального времени, а затем форматируем его с помощью DateTimeFormatter с заданным шаблоном. Это более современный и удобный способ работы с датой и временем в Java.

0

Вы можете использовать класс 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.

0

Чтобы отобразить дату и время с миллисекундами на 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() и выводим результат на экран.

0

В дополнение к вышеуказанным ответам, вот небольшой рабочий пример программы на 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. Не забудьте, что нужно импортировать необходимые классы для работы с датами и форматами.

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