web-dev-qa-db-ja.com

Java LocalTimeを引く

2つのLocalTimeオブジェクトがあります。

LocalTime l1 = LocalTime.parse("02:53:40");
LocalTime l2 = LocalTime.parse("02:54:27");

それらの間で数分で違いを見つけるにはどうすればよいですか?

29
Bob

api で説明されているように、untilまたはbetweenを使用します

import Java.time.LocalTime;
import static Java.time.temporal.ChronoUnit.MINUTES;

public class SO {
    public static void main(String[] args) {
        LocalTime l1 = LocalTime.parse("02:53:40");
        LocalTime l2 = LocalTime.parse("02:54:27");
        System.out.println(l1.until(l2, MINUTES));
        System.out.println(MINUTES.between(l1, l2));
    }
}


0

33
Yosef Weiner

Java 8を使用すると Duration クラスを使用できます。これが最もエレガントなソリューションを提供すると思います。

long elapsedMinutes = Duration.between(l1, l2).toMinutes();
26
nslxndr

でこれを行う ChronoUnit

long minutesBetween = ChronoUnit.MINUTES.between(l1,l2);

    LocalTime localTime=LocalTime.now();
    LocalTime localTimeAfter5Minutes=LocalTime.now().plusMinutes(5);
    Long minutesBetween=ChronoUnit.MINUTES.between(localTime,localTimeAfter5Minutes);
    System.out.println("Diffrence between time in munutes : "+minutesBetween);

出力

Diffrence between time in munutes : 5
7
Neeraj Jain

これを行うことができます:

long dif = Math.abs (l1.getLocalMillis () - l2.getLocalMillis ());
TimeUnit.MINUTES.convert (dif, TimeUnit.MILLISECONDS);
0
Lev Kuznetsov