web-dev-qa-db-ja.com

JodaTime期間を文字列に変換します

私は127秒の長さの映画を持っています。 02:07と表示したいのですが。これを実装するための最良の方法は何ですか?

27
fedor.belov
Duration yourDuration = //...
Period period = yourDuration.toPeriod();
PeriodFormatter minutesAndSeconds = new PeriodFormatterBuilder()
     .printZeroAlways()
     .appendMinutes()
     .appendSeparator(":")
     .appendSeconds()
     .toFormatter();
String result = minutesAndSeconds.print(period);
31
Ilya

私はこれを自分で欲しかったのですが、llyasの答えが正確であることがわかりませんでした。カウンターが欲しいのですが、0時間1分で彼の答えで0:1が返ってきましたが、これは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が得られます!

24
Yokich