9

時間を指定するためにJodaTime LocalTimeを使用しています。2 つの時間の差を分単位で取得するにはどうすればよいですか?

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

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

2 に答える 2

17

あなたが尋ねるなら

2 つの時間の差を分単位で取得するにはどうすればよいですか?

次に、より直感的なソリューションに従うことを考えます。

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時差を考慮せず、したがって時間を分に変換しないことを意味するだけです。2 番目の式が本当に必要なものである場合、質問は次のようになります。

2 つのインスタンスの分の部分の違いを取得するにはどうすればよい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);
于 2014-03-13T11:01:43.250 に答える