计算java中的日期/时间差

我想以小时/分钟/秒为单位计算两个日期之间的差异。

我的代码在这里有一个小问题:

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是非负数。

以上是 计算java中的日期/时间差 的全部内容, 来源链接: utcz.com/qa/405527.html

回到顶部