I tried to use DateTimeFormatter for it, but not found way. Duration.parse(\"\") only use special format.
IMHO, java 8 doesn't provide any facility for custom duration parsing.
You should to do it "manually". For example (an efficient way) :
import static java.lang.Integer.valueOf;
import java.time.Duration;
public class DurationParser {
public static Duration parse(String input) {
int colonIndex = input.indexOf(':');
String mm = input.substring(0, colonIndex);
String ss = input.substring(colonIndex + 1);
return Duration.ofMinutes(valueOf(mm)).plusSeconds(valueOf(ss));
}
}
You can parse the String yourself and reformat it into the format required by Duration
String value = ... //mm:ss
String[] fields = value.split(":");
return Duration.parse(String.format("P%dM%sS", fields[0], fields[1]));