我在項目中使用喬達時間(1.6.2),我正在做的一件事是獲得預測時間和實際時間。有時候,這種差異是積極的,有時是消極的雖然適當的方法可能是使用Duration
而不是Period
,但使用PeriodFormatter
來顯示結果讓我對PeriodFormatterBuilder類產生了疑問。作爲一個例子:用喬達時間週期顯示「負」時間週期大小
DateTime d1 = new DateTime(2011, 6, 17, 13, 13, 5, 0) ;
DateTime d2 = new DateTime(2011, 6, 17, 10, 17, 3, 0) ;
Period negativePeriod = new Period(d1, d2);
Period positivePeriod = new Period(d2, d1);
PeriodFormatter pf = new PeriodFormatterBuilder()
.minimumPrintedDigits(2)
.appendHours()
.appendSuffix(":")
.rejectSignedValues(true) // Does this do anything?
.appendMinutes()
.appendSuffix(":")
.appendSeconds()
.toFormatter();
System.out.printf("Negative Period: %s\n", pf.print(negativePeriod));
System.out.printf("Positive Period: %s\n", pf.print(positivePeriod));
的這個輸出是:
Negative Period: -02:-56:-02
Positive Period: 02:56:02
我明白Period
存儲分別它的日期和時間的每個分量,但對我來說,.rejectSignedValues(true)
方法的預期行爲建設Formatter
將只顯示-
簽收只喜歡第一個元素:
Negative Period: -02:56:02
難道我米是瞭解API,還是這是一個錯誤? JodaStephen?任何人?
爲了展示我想要的東西並不難,但我只是對Builder方法感到好奇。
感謝,
-Manuel
像負頻率負的時期沒有太大的意義在現實世界中。 JodaTime應該取差值的絕對值。 –
感謝您的意見,彼得,但是,這不是1 /頻率的時期。在喬達時代,「週期」是兩個時間點之間的差異。當然,差異可以大於或小於零。 – Befloibent
我可以稱之爲JodaTime支持的間隔。一段時期是經常發生的事情。 –