在Java中将HH:mm:ss转换为毫秒

时间:2018-11-13 17:38:47

标签: java datetime java-date

我想从有效载荷中以HH:mm:ss格式发送时间。我想在毫秒内返回。

下面,我可以在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);

我需要将HH:mm:ss转换为毫秒

如果我在12:30:00过去,那么我需要那毫秒...今天的毫秒

2 个答案:

答案 0 :(得分:5)

您可以使用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;

答案 1 :(得分:2)

使用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);