3

2つのDateTime間の時間差を取得するためにPeriodを使用しています。

 Period p = new Period(startDate, endDate,
                PeriodType.standard().withSecondsRemoved().withMillisRemoved());

        return PeriodFormat.getDefault().print(p);

それは私に「1時間30分」という形で何かを与えてくれます。

「1:30」や「:15」のようなものを取得するにはどうすればよいですか?

私は次のようなことができると思います:

public static int getHoursDifference(DateTime startDate, DateTime endDate) {
        Period p = new Period(startDate, endDate);
        return p.getHours();
    }

そして、同様に数分間、次に連結します...?

4

1 に答える 1

4

PeriodFormatterBuilderを使用できます。

次のようなもの:

PeriodFormatter formatter = new PeriodFormatterBuilder()
    .minimumPrintedDigits(2)
    .printZeroAlways()
    .appendHours()
    .appendSeparator(":")
    .appendMinutes()
    .toFormatter();

現在使用しているデフォルトのフォーマッターの代わりに使用できるフォーマッターが提供され、探しているフォーマットに似たものが提供されると思います。もちろん、興味があれば他のフィールドを追加することもできます。

また、への呼び出しを変更またはスキップするとminimumPrintedDigitsprintZeroAlways時間の部分がゼロの場合は表示されないようにしたり、先行ゼロなしで表示したりできる場合があります。

于 2012-05-10T21:52:52.547 に答える