1. ホーム
  2. java

[解決済み] javaで日付/時間差の計算をする [重複]。

2022-04-25 03:19:10

質問

したい 2つの日付の差を計算する 時間/分/秒単位で表示します。

私は私のコードで少し問題がありますそれは次のとおりです。

String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";

// Custom date format
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");  

Date d1 = null;
Date d2 = null;
try {
    d1 = format.parse(dateStart);
    d2 = format.parse(dateStop);
} catch (ParseException e) {
    e.printStackTrace();
}    

// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000;         
long diffMinutes = diff / (60 * 1000);         
long diffHours = diff / (60 * 60 * 1000);                      
System.out.println("Time in seconds: " + diffSeconds + " seconds.");         
System.out.println("Time in minutes: " + diffMinutes + " minutes.");         
System.out.println("Time in hours: " + diffHours + " hours."); 

これは、以下を生成する必要があります。

Time in seconds: 45 seconds.
Time in minutes: 3 minutes.
Time in hours: 0 hours.

しかし、私はこの結果を得る。

Time in seconds: 225 seconds.
Time in minutes: 3 minutes.
Time in hours: 0 hours.

どなたか、私が何を間違えているのかわかりますか?

解決方法は?

試す

long diffSeconds = diff / 1000 % 60;  
long diffMinutes = diff / (60 * 1000) % 60; 
long diffHours = diff / (60 * 60 * 1000);

注:これは diff は非負である。