【发布时间】:2013-07-30 04:43:48
【问题描述】:
我有两个DateTime的对象,需要找到他们的区别的持续时间,
我有以下代码,但不知道如何继续它以达到预期的结果,如下所示:
示例:
11/03/14 09:30:58
11/03/14 09:33:43
elapsed time is 02 minutes and 45 seconds
-----------------------------------------------------
11/03/14 09:30:58
11/03/15 09:30:58
elapsed time is a day
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:30:58
elapsed time is two days
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:35:58
elapsed time is two days and 05 minutes
代码:
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 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
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.");
【问题讨论】:
-
请查看 Joda time,它已内置支持此功能。
-
你的代码有什么问题,你只需要一些调整来实现所需的输出,让我们试试吧
-
先求小时差,余数求分,再求秒!
-
@PeterLawrey 我提供了不同的例子
-
@aquestion duplication 表示两个问题的预期结果相同,这个问题的预期输出与您提供的不同。
标签: java date-arithmetic