46

2 つの日付 A (開始時刻) と B (終了時刻) があるとします。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"            

助けていただければ幸いです。

4

2 に答える 2

112

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で日付を解析する

于 2013-02-28T11:59:46.763 に答える
7

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

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

double seconds = (now.getMillis() - dateTime.getMillis()) / 1000d;
于 2015-10-02T16:08:47.283 に答える