5

Java で秒数を ISO_8601/Duration に変換したいと思います。

http://en.wikipedia.org/wiki/ISO_8601#Durations

すでに組み込まれている既存の方法はありますか?

4

4 に答える 4

2

JodaTimeライブラリの Period オブジェクトを使用することをお勧めします。次に、次のようなメソッドを記述できます。

public static String secondsAsFormattedString(long seconds) {
     Period period = new Period(1000 * seconds);
     return "PT" + period.getHours() + "H" + period.getMinutes() + "M" + period.getSeconds() + "S";
 }
于 2013-07-29T15:06:21.650 に答える
2

ISO 8601 では期間文字列の個々のフィールドがオーバーフローすることを許可しているため、秒数の先頭に「PT」を追加し、「S」を追加するだけです。

int secs = 4711;
String iso8601format = "PT" + secs + "S";

これにより、「PT1H18M31S」と同等の「PT4711S」が出力されます。

于 2013-07-29T14:59:54.017 に答える