我看过一些使用Joda Time和其他方法来计算两个日期之间的毫秒差的示例,但是如何将它们应用于仅获取两个时间之间的分钟差呢?例如,下午2:45和上午11:00之间的差为225分钟。
你可以通过观察得出数学计算方法,一分钟有六十秒,一秒有一千毫秒,所以一分钟等于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.");
java.util.Date
对象。有不同的方法可以输入它们,具体取决于当地环境。查找“Java日期解析”以查看您可以输入这些日期的格式。还可以查找Java日历来了解另一个制作日期的选项。 - Sergey KalinichenkoJodaTime
,您可以执行以下操作以获取精确分钟数。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
对象。
60000
。