2016-06-27 15 views
0

私はjodatimeライブラリを使用しています。私は現在と終了時間の間にカウントダウンを表示し、それをユーザーに表示したいと思います。今私はhh:mm:ssとしてフォーマット文字列に期間を変換したいjodatime Durationをhh:mm:ssの形式の文字列に変換するにはどうすればよいですか?

Interval time = new Interval(DateTime.now(), end_time); 
Duration duration = time.toDuration(); 

:私は経由で表示したい期間を取得します。これを行う最も簡単な方法は何ですか?

答えて

1

apache.commons.langからDurationUtilsを使用します。

import org.apache.commons.lang.time.DurationFormatUtils; 

DurationFormatUtils.formatDuration(duration.getMillis(), "HH:mm:ss") 

それとも使用:

DateFormat df = new SimpleDateFormat("hh:mm:ss"); 
String formatted = df.format(new Date(duration.getMillis())); 

それとも別の非常に短いソリューション:

String formatted = String.format("%1$tI:%1$tM:%1$tS", duration.getMillis()); 
+0

@Christian示唆したライブラリ「Apacheのラングコモンズながら"DurationFormatUtilsユーティリティを含むユーティリティは、他の2つのプロポーザルl)ゾーンがUTCでない場合、タイムゾーン依存=>オフセットエラーが発生する、b)1日未満の期間にのみ適用される –

+0

@MenoHochschild非常に良いことを指摘した –

関連する問題