2012-05-31 28 views
22

Tôi có phim có thời lượng 127 giây. Tôi muốn hiển thị nó là 02:07. Cách tốt nhất để thực hiện điều này là gì?Chuyển đổi thời lượng JodaTime thành chuỗi

+1

Tôi đã tạm thời triển khai điều này với 'org.apache.commons.lang.time.DurationFormatUtils' –

+0

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

Trả lời

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

Chức năng sử dụng trong dòng cuối cùng là in (khoảng thời gian) không pricntTo() – fodon

+0

@fodon thx. Tôi đã sửa – Ilya

21

Tôi muốn điều này cho bản thân mình và tôi không tìm thấy câu trả lời chính xác. Tôi muốn có một bộ đếm và khi tôi có 0 giờ và 1 phút, tôi nhận được 0:1 với câu trả lời của mình - nhưng điều này được sửa dễ dàng với một dòng mã!

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

Điều này sẽ cung cấp cho bạn 02:07!

+1

Điều này dường như hoạt động tốt hơn và tôi sẽ upvote ưu tiên cho câu trả lời được chấp nhận –

+0

Tôi đồng ý với Brian, 'minimumPrintedDigits (2)' là chính xác những gì tôi cần. –

Các vấn đề liên quan