1. ホーム
  2. java

[解決済み] JavaでDurationを "pretty print "するには?

2022-09-17 17:07:17

質問

C#と同じように、ミリ秒単位で数値をきれいに表示できるJavaライブラリをご存知の方はいらっしゃいますか?

例えば、123456msをlongとすると、4d1h3m5sと表示されます。

どのように解決するのですか?

ジョダ時間 は、これを行うためのかなり良い方法を持っています。 PeriodFormatterBuilder .

クイックウィン PeriodFormat.getDefault().print(duration.toPeriod());

//import org.joda.time.format.PeriodFormatter;
//import org.joda.time.format.PeriodFormatterBuilder;
//import org.joda.time.Duration;

Duration duration = new Duration(123456); // in milliseconds
PeriodFormatter formatter = new PeriodFormatterBuilder()
     .appendDays()
     .appendSuffix("d")
     .appendHours()
     .appendSuffix("h")
     .appendMinutes()
     .appendSuffix("m")
     .appendSeconds()
     .appendSuffix("s")
     .toFormatter();
String formatted = formatter.print(duration.toPeriod());
System.out.println(formatted);