【发布时间】:2016-08-29 17:43:21
【问题描述】:
我正在尝试使用以下代码查找两次之间的持续时间:
DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
System.out.println(airTime1);
System.out.println(startTime1);
Minutes difference = ((Minutes.minutesBetween(startTime1,airTime1)));
String differenceS = String.valueOf(difference);
System.out.println(differenceS);
LocalTime remaining1 = formatter.parseLocalTime(differenceS);
System.out.println(remaining1);
airTime1 和 startTime1 都是 localTime 变量。差异应包含两次之间的持续时间。差异是差异的字符串表示,因为分钟不能转换为字符串。
当我在12:00 & 13:00等变量中输入时间时,变量记录为:12:00:00.000 & 13:00:00.000,但是differenceS收到的值是PT-60M,很明显引发错误。有谁知道为什么分钟差线可以计算这个值?
提前致谢!
【问题讨论】:
-
difference.getMinutes() 不适合你吗?
-
你的意思是像这样使用 difference.getMinutes 吗?分钟差1 = (difference.getMinutes(startTime1,airTime1));
-
没有。 jodatime 的 Minutes 类提供了一个方法 getMinutes(),该方法不带任何参数,该方法返回表示为 int 值的分钟数。这不正是你想要的吗?
-
这听起来和我想做的完全一样。抱歉我的无知,我将如何实施?
-
将代码示例中的最后 4 行替换为 System.out.println(difference.getMinutes())。如果您只需要绝对值(非负),请使用 Math.abs(int):int 。