Это похоже на формат продолжительности iso8601 .
String videoDuration = "PT5M46S";
Duration dur = Duration.parse(videoDuration);
String strTime;
if (dur.toHours() > 0) {
strTime = String.format("%d:%02d:%02d",
dur.toHours(),
dur.toMinutesPart(),
dur.toSecondsPart());
} else {
strTime = String.format("%02d:%02d",
dur.toMinutesPart(),
dur.toSecondsPart());
}
System.out.println(strTime);
Это выводит:
05:46
Я бы оставил чек для часов, потому что некоторые YouTube продолжительность видео больше часа, и, таким образом, PT1H15M2S
будет выдавать 1:15:02
.
Обратите внимание, что toMinutesPart()
и toSecondsPart()
относятся к java 9, если вы все еще используете java 8 вы все равно можете использовать Duration
для его анализа, но вы должны проверить другие способы его форматирования.