Конвертировать ЧЧ: мм: сс в Миллисекунды в Java - PullRequest
0 голосов
/ 13 ноября 2018

Из полезной нагрузки я пытаюсь отправить время в формате ЧЧ: мм: сс. Я хотел бы вернуть это в миллисекундах.

Ниже я смог преобразовать дату с его помощью (с помощью SO).

String myDate = "2018/11/13 12:00:00";
LocalDateTime localDateTime = LocalDateTime.parse(myDate, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss") );
long millis = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();  
System.out.println(millis);

Мне нужно преобразовать ЧЧ: мм: сс в миллисекунды

Если я пройду в 12:30:00, мне понадобится миллисекунда этого ... СЕГОДНЯ миллисекунда

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Другое решение, использующее LocalTime:

LocalTime zero = LocalTime.parse("00:00:00");
LocalTime time = LocalTime.parse("13:15:10");
Long mils = ChronoUnit.MILLIS.between(zero, time);
System.out.print(mils);

, напечатает:

47710000

или проще, любезно предоставлено @ OleV.V.

LocalTime time = LocalTime.parse("13:15:10");
Long mils = ChronoUnit.MILLIS.between(LocalTime.MIDNIGHT, time);
System.out.print(mils);
0 голосов
/ 13 ноября 2018

Вы можете использовать LocalTime.toSecondOfDay ()

String myDate = "2018/11/13 12:00:00";
LocalDateTime localDateTime = LocalDateTime.parse(myDate, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss") );
int millis = localDateTime.toLocalTime().toSecondOfDay() * 1000;

я не передаю дату.я прохожу во времени

Даже в этом случае вы ищете LocalTime.

String time "12:30:00";
LocalTime localTime = LocalTime.parse(time);
int millis = localTime.toSecondOfDay() * 1000;
...