ТЛ; др
Duration.between(
LocalTime.MIN ,
LocalTime.parse("00:12:34.567891")
).toMillis()
Смотрите эту code run live at IdeOne.com.
java.time
Ваш вклад делает не по всей видимости, является GPS метка времени. Вы должны определить и документировать объяснение источника данных.
Слово «временная метка» обычно означает точку на временной шкале, дату плюс время дня плюс часовой пояс (или смещение от-UTC). Напротив, ваш 00:12:34.567891
выглядит как промежуток времени, в частности двенадцать минут, тридцать четыре секунды и примерно на полсекунды больше (0,567891 секунд).
Предполагая, что у вас не будет ввода больше 24 часов, я предлагаю разбор в качестве объекта LocalTime
.
String input = "00:12:34.567891" ;
LocalTime lt = LocalTime.parse(input);
Представляет промежуток времени, как Duration
.
Duration d = Duration.between(LocalTime.MIN , lt) ;
Сформировать строку, представляющую значение этого Duration
в формате standard ISO 8601. В этом формате PnYnMnDTnHnMnS
, где P
отмечает начало, а T
отделяет любую часть лет-месяцев-дней от любой части часов-минут-секунд.
PT12M34.567891S
Кстати, ваше строковое значение ввода является плохим выбором формата для сериализации значения времени простоя. Используйте, по возможности, стандартный формат ISO 8601.
Кажется, что вы просите весь этот промежуток времени в миллисекундах. Помните, что это означает потерю данных, поскольку любые microseconds или nanoseconds во фракции секунды усекаются до milliseconds.
long millis = d.toMillis() ; // Consider entire span of time as milliseconds.
См. Это code run live at IdeOne.com.
О java.time
java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые legacy классы времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time, в настоящее время в maintenance mode, советует перейти на классы java.time.
Чтобы узнать больше, см. Oracle Tutorial. И поиск Stack Overflow для многих примеров и объяснений. Спецификация: JSR 310.
Где получить классы java.time?
ThreeTen-Extra Проект расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more.
Java7 имеет ['TimeUnit.NANOSECONDS'] (http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html#NANOSECONDS) ... и' System. nanoTime(); ' –