web-dev-qa-db-ja.com

joda時間を使用した2つの日付の秒数の差

A(開始時刻)とB(終了時刻)の2つの日付があるとします。 AとBは、同じ日の時刻でも、別の日の時刻でも構いません。私の仕事は、秒単位で違いを示すことです。私が使用している日付形式は

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"            

ヘルプは大歓迎です。

43
Ankit Ostwal

Secondsクラスを使用します。

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

このコードは600を出力します。これが必要なものだと思います。

さらなるアドバイスとして、joda-time。それはかなり良いです、そして、ほとんどのものは発見するのが非常に簡単です。

日付の解析に関するヘルプが必要な場合(実際にはドキュメントに記載されています)、次のような関連する質問をご覧ください。

タイムゾーンのあるJodaでの日付の解析

107
pcalcao

ほとんどの場合、@ pcalcaoの答えが最適です。秒は整数に丸められることに注意してください。

サブ秒の精度に関心がある場合は、ミリ秒を差し引くだけです。

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