Код ниже дает мне текущее время. Но это ничего не говорит о миллисекундах.
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;
}
Я получаю дату в формате 2009-09-22 16:47:08
(ГГГГ-ММ-ДД ЧЧ: МИ: Сек) .
Но я хочу получить текущее время в формате 2009-09-22 16:47:08.128
((ГГГГ-ММ-ДД ЧЧ: MI: Sec.Ms) - где 128 показывает миллисекунду.
SimpleTextFormat
будет работать нормально Здесь самая низкая единица времени - секунда, но как мне получить и миллисекунду?
java.util.Date
,java.util.Calendar
иjava.text.SimpleTextFormat
теперь наследие , вытесняется java.time классов. Смотрите Учебник по Oracle .Ответы:
источник
toString(String format)
метод?java.util.Date
, Кажется, не имеют его. Вы имеете в виду API Joda Time? Но одним из возможных преимуществ является повторное использование одного и того же объекта форматирования. Во-вторых, вам не нужно добавлять API - класс Date является стандартным классом библиотеки Java.LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"))
Java один вкладыш
в стиле JDK8
источник
Вам нужно только добавить поле миллисекунды в строку формата даты:
Документ API SimpleDateFormat подробно описывает строку формата.
источник
попробуй это:-
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
или
источник
ТЛ; др
java.time
В Java 8 и более поздних версиях у нас есть инфраструктура java.time, встроенная в Java 8 и более поздние версии . Эти новые классы вытесняют проблемные старые классы java.util.Date/.Calendar. Новые классы вдохновлены очень успешной платформой Joda-Time , задуманной как ее преемник, похожей по концепции, но реструктурированной. Определено JSR 310 . Продлевался ThreeTen-Extra проекта. Смотрите учебник .
Имейте в виду, что java.time имеет разрешение наносекунды (9 десятичных знаков в доли секунды) по сравнению с миллисекундами разрешением (3 десятичных разряда) для java.util.Date и Joda-Time. Поэтому при форматировании для отображения только 3 десятичных разрядов вы можете скрывать данные.
Если вы хотите исключить какие-либо микросекунды или наносекунды из ваших данных, обрежьте их.
Классы java.time по умолчанию используют формат ISO 8601 при разборе / генерации строк. А
Z
в конце это сокращение отZulu
, и означает UTC .An
Instant
представляет момент на временной шкале в UTC с разрешением до наносекунд . Запись текущего момента в Java 8 ограничена миллисекундами , а новая реализация в Java 9 захватывает до наносекунд в зависимости от возможностей аппаратных часов вашего компьютера.Замените
T
в середине пробел, а наZ
ничто, чтобы получить желаемый результат.Так как вам не нужно включать смещение или часовой пояс, сделайте «местное» время и дату, не привязанные к какой-либо конкретной местности.
Joda времени
Очень успешная библиотека Joda-Time была источником вдохновения для фреймворка java.time. Рекомендуется перейти на java.time, когда это удобно.
Формат ISO 8601 включает миллисекунды и является значением по умолчанию для библиотеки Joda-Time 2.4.
Когда беги…
Кроме того, вы можете запросить доли секунды в миллисекундах в виде числа, если это необходимо:
источник
Я бы использовал что-то вроде этого:
Переменная
dateTime
может быть любой датой и / или значением времени, см. JavaDocFormatter
.источник
Самый простой способ был (до Java 8) использовать,
Но SimpleDateFormat не является потокобезопасным. Ни java.util.Date . Это приведет к потенциальным проблемам параллелизма для пользователей. И есть много проблем в этих существующих проектах. Чтобы преодолеть это сейчас в Java 8, у нас есть отдельный пакет с именем java.time . Это Java SE 8 Дата и время содержит хороший обзор.
Таким образом, в Java 8 что-то вроде ниже поможет (для форматирования текущей даты / времени),
И стоит отметить, что он был разработан с помощью популярной сторонней библиотеки joda-time ,
Но сейчас
joda-time
он становится устаревшим и просит пользователей перейти на новоеjava.time
.Во всяком случае, сказав это,
Если у вас есть экземпляр календаря, вы можете использовать ниже, чтобы преобразовать его в новый
java.time
,Если у вас был объект Date,
Если у вас только были эпохи миллисекунд,
источник
Чтобы дополнить приведенные выше ответы, приведу небольшой рабочий пример программы, которая печатает текущее время и дату, включая миллисекунды.
источник
Используйте это, чтобы получить ваше текущее время в указанном формате:
источник
java.util.Date
,java.util.Calendar
иjava.text.SimpleDateFormat
теперь унаследованные , вытеснены классами java.time, встроенными в Java 8 и более поздние версии . Смотрите Учебник по Oracle .У меня есть простой пример для отображения даты и времени с миллисекундами ......
источник
Я не вижу ссылки на это:
вышеуказанный формат также полезен.
http://www.java2s.com/Tutorials/Java/Date/Date_Format/Format_date_in_yyyyMMddHHmmssSSS_format_in_Java.htm
источник
Ans:
источник
Документ в Java 8 называет его долями секунды , а в Java 6 - миллисекундами . Это привело меня в замешательство
источник
java.text (до Java 8)
java.time
источник
Вы можете просто получить его в нужном вам формате.
источник