我想从有效载荷中以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过去,那么我需要那毫秒...今天的毫秒
答案 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);