3 回答

TA貢獻1856條經驗 獲得超5個贊
您需要對周期進行歸一化,因為如果用總秒數來構造周期,則這是它唯一的值。對其進行歸一化會將其分解為天,分鐘,秒等的總數。
通過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()));
}
將打?。?/p>
24分12秒
3天24分12秒
因此,您可以看到非標準化期間的輸出僅忽略了小時數(它沒有將72小時轉換為3天)。

TA貢獻1834條經驗 獲得超8個贊
您還可以使用默認格式化程序,該格式多數情況下適用:
Period period = new Period(startDate, endDate);
System.out.println(PeriodFormat.getDefault().print(period))

TA貢獻1906條經驗 獲得超3個贊
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()));
添加回答
舉報