如果已经讨论过,我道歉.
我在字符串中有一个剪辑持续时间:
00:10:17
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以毫秒为单位的值.(上述字符串基本上为617000)
是否有一些API,我可以用一步或两步来做到这一点.基本方法是拆分字符串,然后添加分钟,秒和小时.
但有没有更短的方法来做到这一点?
谢谢.
您可以手动解析它:
String s = "00:10:17";
String[] data = s.split(":");
int hours = Integer.parseInt(data[0]);
int minutes = Integer.parseInt(data[1]);
int seconds = Integer.parseInt(data[2]);
int time = seconds + 60 * minutes + 3600 * hours;
System.out.println("time in millis = " + TimeUnit.MILLISECONDS.convert(time, TimeUnit.SECONDS));
Run Code Online (Sandbox Code Playgroud)
这是一种自己书面的可能方法(始终假定相同的源格式)
String source = "00:10:17";
String[] tokens = source.split(":");
int secondsToMs = Integer.parseInt(tokens[2]) * 1000;
int minutesToMs = Integer.parseInt(tokens[1]) * 60000;
int hoursToMs = Integer.parseInt(tokens[0]) * 3600000;
long total = secondsToMs + minutesToMs + hoursToMs;
Run Code Online (Sandbox Code Playgroud)
java.time.Duration使用Duration该类。
Duration.between(
LocalTime.MIN ,
LocalTime.parse( "00:10:17" )
).toMillis()
Run Code Online (Sandbox Code Playgroud)
毫秒:617000
可以在IdeOne.com上实时查看此代码。
见我这个答案和这个答案我的类似问题进行更多的解释Duration,LocalTime以及java.time。
注意:当从java.time对象中可能的纳秒值转换为所需的毫秒数时,请注意可能的数据丢失。
| 归档时间: |
|
| 查看次数: |
9239 次 |
| 最近记录: |