如何区分两个JodaTime LocalTime邮票?

时间:2014-03-13 09:27:06

标签: java jodatime localtime

我正在使用JodaTime LocalTime来指定时间。如何在两次之间获得分钟差异?

LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);

// LocalTime duration = this.endT.minusMinutes(startT);
// int durationMinutes = duration.getMinutes();

2 个答案:

答案 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 - 实例的分钟部分?

针对Java-8进行了更新:

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();