4

我已经看到了一些使用 Joda Time 和其他方法来计算两个日期之间的差异(以毫秒为单位)的示例,但是如何应用这些方法来获得两个时间之间的差异(以分钟为单位)?例如,下午 2:45 和上午 11:00 之间的时间差为 225 分钟。

4

3 回答 3

12

你可以通过观察一分钟是六十秒,一秒是一千毫秒,所以一分钟是60*1000毫秒来算出数学。

如果将毫秒除以 60,000,则秒数将被截断。您应该将该数字除以 1000 以截断毫秒,然后将n % 60其作为秒数和n / 60分钟数:

Date d1 = ...
Date d2 = ...
long diffMs = d1.getTime() - d2.getTime();
long diffSec = diffMs / 1000;
long min = diffSec / 60;
long sec = diffSec % 60;
System.out.println("The difference is "+min+" minutes and "+sec+" seconds.");
于 2013-09-08T17:27:59.680 回答
4

使用JodaTime,您可以执行以下操作以获得准确的分钟数

public static void main(String[] args) throws Exception {   //Read user input into the array
    long time = System.currentTimeMillis(); // current time
    DateTime time1 = new DateTime(time);
    DateTime time2 = new DateTime(time + 120_000); // add 2 minutes for example
    Minutes minutes = Minutes.minutesBetween(time1, time2);
    System.out.println(minutes.getMinutes()); // prints 2
}

Minutes.minutesBetween()接受一个ReadableInstant不一定是DateTime对象的参数。

于 2013-09-08T17:31:32.663 回答
1

要将毫秒转换为分钟,请除以60000.

于 2013-09-08T17:27:47.780 回答