Q
문자열 기간
56
A
답변
91
당신은 당신이 초 총 개수로를 구성하는 경우, 그 그것이있는 유일한 값이기 때문에 기간을 정상화 할 필요가있다.
편집 ripper234 등에 의해, 그것은 일, 분, 초의 총 개수로를 무너 뜨리는 것 정규화 - A는 TL;DR version 추가 : 예를 들어 PeriodFormat.getDefault().print(period)
:
public static void main(String[] args) {
PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
.appendDays()
.appendSuffix(" day", " days")
.appendSeparator(" and ")
.appendMinutes()
.appendSuffix(" minute", " minutes")
.appendSeparator(" and ")
.appendSeconds()
.appendSuffix(" second", " seconds")
.toFormatter();
Period period = new Period(72, 24, 12, 0);
System.out.println(daysHoursMinutes.print(period));
System.out.println(daysHoursMinutes.print(period.normalizedStandard()));
}
인쇄됩니다 :
24 minutes and 12 seconds
3 days and 24 minutes and 12 seconds
정규화되지 않은 기간에 대한 출력이 시간 수를 무시한다는 것을 알 수 있습니다 (72 시간을 3 일로 변환하지 않음). 그 이유는, 당신이 시간을 놓치고
Period period = new Period(startDate, endDate);
System.out.println(PeriodFormat.getDefault().print(period))
12
Period period = new Period();
// prints 00:00:00
System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
period = period.plusSeconds(60 * 60 * 12);
// prints 00:00:43200
System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
period = period.normalizedStandard();
// prints 12:00:00
System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
+2
이 효과를 얻으려면 형식 문자열을 기간 또는 해당 포매터로 전달할 수 없습니다. – greenoldman
22
2
PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
.appendDays()
**.appendSuffix(" day", " days")
.appendSeparator(" and ")
.appendMinutes()
.appendSuffix(" minute", " minutes")**
.appendSeparator(" and ")
.appendSeconds()
.appendSuffix(" second", " seconds")
.toFormatter();
:
관련 항목 : http://stackoverflow.com/q/10829870/11236 – ripper234