2012-03-07 49 views
2

我遇到了JodaTime的Period類的一個奇怪問題。我已經實例化了一個Period對象,該對象正在打印爲:PT8M19.966S,它清楚地顯示了8分19秒(這在此處是正確的),並且我將Period.toMillis稱爲Period.toMillis。我得到的結果是一些隨機數字,例如968或152,這些數字顯然不是該方法應該返回的數字。所以我想知道它是否是某種錯誤,或是從我身邊誤用。Joda時間的Period.getMillis返回不準確的數字

+1

向我們展示一個可重複的示例 – skaffman 2012-03-07 14:58:44

+2

...此方法不存在? – 2012-03-07 15:00:58

+0

對不起,我的意思是getMillis()... – 2012-03-07 15:36:20

回答

7

您的意思是getMillis()? javadoc表示它只返回週期的毫秒部分,而不是週期的毫秒數。

+0

我明白了......我讀了文檔,但顯然我錯過了'部分'的事情。因爲我沒有看到toStandartMillis我想我必須使用toStandardSeconds()。getSeconds()* 1000.我現在就試試看吧...... – 2012-03-07 15:39:29

+5

這樣做的正確方法是'Period.toStandardDuration()。getMillis ()'。 – 2012-03-07 16:11:35

+0

謝謝,路易斯! – 2012-03-07 16:18:43

1

用如上述路易斯建議,你應該轉換到Period第一Duration,然後得到它的毫秒:

long millis = period.toStandardDuration().getMillis(); 

對於主要的原因是ReadablePeriod不知道它裏面到底有多少毫秒,直到您將其應用於日曆。例如,一個月內有多少毫秒?直到本月適用於日曆,我們無法得到答案。