计算从开始日期到结束日期的时间

时间:2012-01-14 21:05:50

标签: java date

我会实现一个方法,在输入中接收两个对象日期并计算这两者之间传递的时间。我怎么能实现这样的东西?有些想法?

3 个答案:

答案 0 :(得分:2)

您期望答案的单位是什么?这是一种可能性:

public static String timeBetween(Date start, Date end) {
    long timeDiff = Math.abs(end.getTime() - start.getTime());
    String diff = String.format("in days: %d | in hours: %d | in minutes: %d",
        TimeUnit.MILLISECONDS.toDays(timeDiff),
        TimeUnit.MILLISECONDS.toHours(timeDiff),
        TimeUnit.MILLISECONDS.toMinutes(timeDiff));
    return diff;
}

答案 1 :(得分:1)

public long getDifference(Date strt, Date end){
    long s = strt.getTime();
    long e = end.getTime();
    return e-s;

}

返回它们之间的毫秒数

答案 2 :(得分:1)

一种非常粗略的方法是以毫秒为单位取每个日期对象的时间并减去它们以计算持续时间。使用该持续时间,您可以计算持续时间内的秒数,分钟数,天数等。

这是一种粗略的方法,因为它可能在所有情况下都不是100%准确。例如,夏令时,闰年和闰秒都会使这一计算变得复杂。

如果你能接受这些不准确之处,粗略的方法可能就足够了。如果您需要更高的准确性,建议使用第三方库。 Joda-Time提供了Period的概念,它能够计算两个日期实例之间的秒数,分钟数,天数等。