我正在使用JodaTime LocalTime来指定时间。如何在两次之间获得分钟差异?
LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);
// LocalTime duration = this.endT.minusMinutes(startT);
// int durationMinutes = duration.getMinutes();
答案 0 :(得分:16)
如果你问
如何在两次之间获得分钟差异?
然后我会考虑采用更直观的解决方案:
LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);
int minutes = Minutes.minutesBetween(startT, endT).getMinutes(); // 345m = 6h - 15m
表达式
Period.fieldDifference(startT, endT).getMinutes()
只会产生-15
,这意味着不考虑小时差异,因此不会将小时数转换为分钟数。如果第二个表达式确实是你想要的,那么问题应该是:
如何区分两个LocalTime
- 实例的分钟部分?
LocalTime startT = LocalTime.of(6,30);
LocalTime endT = LocalTime.of(12,15);
long minutes = ChronoUnit.MINUTES.between(startT, endT);
System.out.println(minutes); // output: 345
// Answer to a recommendation in a comment:
// Attention JSR-310 has no typesafety regarding units (a bad design choice)
// => UnsupportedTemporalTypeException: Unsupported unit: Minutes
minutes = Duration.between(startT, endT).get(ChronoUnit.MINUTES);
答案 1 :(得分:2)
如果我理解你的问题,下列人员应该做好以下工作:
Period diff = Period.fieldDifference(startT, endT);
int minutes = diff.getMinutes();