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
Trả lời
Duration yourDuration = //...
Period period = yourDuration.toPeriod();
PeriodFormatter minutesAndSeconds = new PeriodFormatterBuilder()
.printZeroAlways()
.appendMinutes()
.appendSeparator(":")
.appendSeconds()
.toFormatter();
String result = minutesAndSeconds.print(period);
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
!
Đ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 –
Tôi đồng ý với Brian, 'minimumPrintedDigits (2)' là chính xác những gì tôi cần. –
Tôi đã tạm thời triển khai điều này với 'org.apache.commons.lang.time.DurationFormatUtils' –
Related: http://stackoverflow.com/questions/1440557/joda-time-period-to-string – ripper234