2012-05-31 21 views
22

Ho un film con durata 127 secondi. Voglio visualizzarlo come 02:07. Qual è il modo migliore per implementarlo?Converti durata JodaTime in stringa

+1

ho temporanea implementato questo con 'org.apache.commons.lang.time.DurationFormatUtils' –

+0

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

risposta

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

La funzione di utilizzare nell'ultima riga è print (periodo) non pricntTo() – fodon

+0

@fodon thx. Ho corretto – Ilya

21

Ho voluto questo per me stesso e non ho trovato risposta llyas per essere precisi. Voglio avere un contatore e quando ho avuto 0 ore e 1 minuto ho ottenuto 0:1 con la sua risposta, ma questo è risolto facilmente con una riga di codice!

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

Questo vi darà 02:07!

+1

Questo sembra funzionare meglio e preferirei una preferenza rispetto alla risposta accettata –

+0

Sono d'accordo con Brian, il 'minimumPrintedDigits (2)' era esattamente quello di cui avevo bisogno. –