合計秒数で作成すると、それが唯一の値になるため、期間を正規化する必要があります。正規化すると、合計日数、分、秒などに分解されます。
ripper234 による編集- TL;DR バージョンの追加: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分12秒
3日24分12秒
したがって、正規化されていない期間の出力では、単に時間数が無視されていることがわかります (72 時間が 3 日に変換されていません)。