2013-02-28 10 views
39

2つの日付A(開始時刻)& B(終了時刻)があるとします。 & Bは、同じ日または異なる日の時間であってもよい。私の仕事は秒差を表示することです。私が使用している日付形式は、joda時間を使用して2つの日付の間の秒単位の違いはありますか?

Date Format :: "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 

です。

start date :: "2011-11-16T14:09:23.000+00:00" 
end date ::  "2011-11-17T05:09:23.000+00:00"    

お願いします。

答えて

102

Secondsクラスを使用します。

DateTime now = DateTime.now(); 
DateTime dateTime = now.plusMinutes(10); 
Seconds seconds = Seconds.secondsBetween(now, dateTime); 
System.out.println(seconds.getSeconds()); 

コードのこの作品は、私は、これは何が必要だと思う600を出力します。

さらなるアドバイスとして、joda-timeのドキュメントを参照してください。それはかなり良いです、そして、ほとんどの事は発見するのが非常に簡単です。

Parsing date with Joda with time zone

+0

ありがとうのpcalcaoを...それは働きました! :-) –

+10

差分を(正の数として)探しているならば、必ず 'secondsBetween'の絶対値を取ってください。そうでなければ、引数が逆であれば負の数を得ることができます(例えば' .secondsBetween(dateTime、now) '。 – user1366367

4

@pcalcaoの答えは最高になります:あなたはこのように、関連した質問をチェックアウトし、(それは本当に、ドキュメントにあります)日付の解析といくつかの助けを必要とする場合には

ほとんどの場合。秒は整数に丸められることに注意してください。

あなたは、サブ秒の精度に興味がある場合は、単にミリ秒substract:

double seconds = (now.getMillis() - dateTime.getMillis())/1000d;