2012-05-31 85 views
22

我有持續127秒的電影。我想把它顯示爲02:07。什麼是實施這個最好的方法?將JodaTime的持續時間轉換爲字符串

+1

我用'org.apache.commons.lang.time.DurationFormatUtils'臨時實現了這個功能 –

+0

相關:http://stackoverflow.com/questions/1440557/joda-time-period-to-string – ripper234

回答

29
Duration yourDuration = //... 
Period period = yourDuration.toPeriod(); 
PeriodFormatter minutesAndSeconds = new PeriodFormatterBuilder() 
    .printZeroAlways() 
    .appendMinutes() 
    .appendSeparator(":") 
    .appendSeconds() 
    .toFormatter(); 
String result = minutesAndSeconds.print(period); 
+0

函數在最後一行使用print(period)不是pricntTo() – fodon

+0

@fodon thx。我已修復 – Ilya

21

我想這是爲自己,我沒有找到llyas答案是準確的。 我想要一個計數器,當我有0小時1分鐘的時候,我的0:1與他的答案 - 但這是用一行代碼很容易修復!

Period p = time.toPeriod(); 
PeriodFormatter hm = new PeriodFormatterBuilder() 
    .printZeroAlways() 
    .minimumPrintedDigits(2) // gives the '01' 
    .appendHours() 
    .appendSeparator(":") 
    .appendMinutes() 
    .toFormatter(); 
String result = hm.print(p); 

這會給你02:07

+1

這看起來效果更好,我會優先選擇接受的答案 –

+0

我同意Brian的說法,'minimumPrintedDigits(2)'正是我所需要的。 –

相關問題