2015-02-05 15 views
13

Mam dwa LocalTime obiekty:Java odjąć Localtime

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

Jak mogę znaleźć inny w minutach między nimi?

Odpowiedz

15

Zastosowanie until lub between, jak opisana przez api

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

Można to zrobić:

long dif = Math.abs (l1.getLocalMillis() - l2.getLocalMillis()); 
TimeUnit.MINUTES.convert (dif, TimeUnit.MILLISECONDS); 
+2

Nie sądzę, że powinniśmy obliczyć już w millis dzięki nowemu interfejsowi API Data/Czas – keuleJ

5

zrobić to zChronoUnit

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

przykładu

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

wyjściowa

Diffrence between time in munutes : 5 
13

Ponieważ Java 8 można wykorzystać Duration klasę. Myślę, że daje to najbardziej eleganckie rozwiązanie:

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