41

プロジェクトを Joda-Time から Java8 のネイティブ時間ライブラリに移行していますが、問題が発生しました。

Duration のフォーマッターが見つかりませんでした。たとえば、HHH+MMのカスタム文字列形式が必要です。ここで、75 時間 15 分の Duration は"75+15" の形式になります。

これは Joda-Time でピリオドに変換し、PeriodFormatter を使用することで簡単に実行できましたが、Java8 でこのタイプのクラスを見つけることができませんでした。何か不足していますか?

4

5 に答える 5

20

組み込みのメソッドはありませんが、手動で計算しなくても時間/分にアクセスできます。特定の形式は次のようになります。

Duration d = Duration.of(75, HOURS).plusMinutes(15);
long hours = d.toHours(); //75
long minutes = d.minusHours(hours).toMinutes(); //15
String HH_PLUS_MM = hours + "+" + minutes; //75+15
System.out.println(HH_PLUS_MM);

期間が 24 時間未満であることが保証されている場合は、次のトリックも使用できます。

String hhPlusMm = LocalTime.MIDNIGHT.plus(d).format(DateTimeFormatter.ofPattern("HH+mm"));
于 2013-12-29T17:49:29.967 に答える