2011-09-21 6 views
2
System.out.println(PeriodFormat.getDefault().print(Period.hours(1).plusMinutes(30).plusSeconds(60))); 

위의 Joda PeriodFormatter의 출력은 "1 시간 30 분 60 초"입니다.조다 기간 포맷터

나는 이것이 프린지 케이스라는 것을 알고 있지만 "1 시간 31 분"이라고 출력하는 방법이 있습니까?

감사합니다.

답변

6

당신은 normalizedStandard로 먼저 정상화 수 : 아마도

Period period = Period.hours(1).plusMinutes(30).plusSeconds(60); 
PeriodFormat.getDefault().print(period.normalizedStandard()); 

또는를 :

Period period = Period.hours(1).plusMinutes(30).plusSeconds(60); 
PeriodFormat.getDefault() 
      .print(period.normalizedStandard(period.getPeriodType())); 
+6

와우, 처음으로 존 소총 응답, 덕분에 많은 ! :) – GWTNewbie

2

시도 toStandardDuration() 추가 :

System.out.println(PeriodFormat.getDefault().print(Period.hours(1).plusMinutes(30).plusSeconds(60).toStandardDuration())); 
+0

toStandardDuration()의 javadoc에 "기간에 년 또는 월이 포함되어 있으면 예외가 발생합니다."라는 메시지가 표시되므로 Jon Skeet의 답변을 수락합니다. 감사합니다. – GWTNewbie