2014-07-08 3 views
4

DateTimeFormatter를 사용하려고했지만 찾지 못했습니다. Duration.parse ("")는 특수 형식 만 사용합니다.Java 8 Time API : "mm : ss"형식의 문자열을 길이로 파싱하는 방법?

+0

에서 요구하는 형식으로 다시 포맷 할 수있는 방법 http://stackoverflow.com/questions/ 같은 약 6403851/parsing-time-strings-like-1h-30min? – cmbuckley

+0

문제는 joda 시간 클래스가 아닌 java.time.Duration 클래스를 사용해야한다는 것입니다. –

+0

나는 TemporalAccessor에 문자열을 구문 분석하는 방법을 발견, 거기에서 길을 얻을 수 있습니다 기간? –

답변

4

당신은 자신을 문자열을 구문 분석하고 Duration

String value = ... //mm:ss 
String[] fields = value.split(":"); 
return Duration.parse(String.format("P%dM%sS", fields[0], fields[1])); 
+0

형식을 나중에 변경할 수 있기 때문에 Java 8의 일부 기능을 사용하고 싶었지만 이제는 적합합니다. 고마워, 디젤 –

0

IMHO, java 8은 사용자 정의 기간 분석을위한 기능을 제공하지 않습니다.

"수동으로"해야합니다. 예를 들어 (효율적으로) :

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)); 
    } 
} 
관련 문제