web-dev-qa-db-ja.com

2つのjoda日時を減算する方法は?

私はこれが「動作するはずの方法」ではないことを知っていますが、それでも:DateTimeオブジェクトが2つある場合、それらを減算する良い方法は何ですか?それらをDateオブジェクトに変換しますか?

DateTime start = new DateTime();
System.out.println(start + " - doing some stuff");

// do stuff

DateTime end = new DateTime();
Period diff = // end - start ???
System.out.println(end + " - doing some stuff took diff seconds");
38
ripper234

ピリオドには 2つのReadableInstantインスタンスを取るコンストラクター があります。

Period diff = new Period(start, end);

ReadableInstantは、DateTimeおよび他のクラスによって実装されるインターフェースです。)

54
millimoose

あなたの例から、秒単位の差が必要なようです これは役立つはずです

Seconds diff = Seconds.secondsBetween(start, end);
20
bowmore

これは役立ちますか? http://joda-time.sourceforge.net/key_period.html 以下の例を示します

DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);

// period of 1 year and 7 days
Period period = new Period(start, end);

// calc will equal end
DateTime calc = start.plus(period);

// able to calculate whole days between two dates easily
Days days = Days.daysBetween(start, end);
6
Rush

取得する精度に依存します。 org.joda.timeパッケージを作成し、HoursDaysなどのヘルパークラスを確認します。

3
Caesar Ralf

2つのPeriodオブジェクトを取る this コンストラクターを使用してDateTimeを作成できると思います。

1
tehlexx