2010-10-18 30 views
31

Ich habe verschiedene Methoden im Internet ausprobiert, konnte aber nicht funktionieren.Android Unterschied zwischen zwei Daten in Sekunden

Auf diese Weise bekomme ich beide Daten in gutem Format. Jetzt möchte ich den Unterschied zwischen EndDate und Startdate in Sekunden finden.

Irgendwelche Ratschläge? Vielen Dank.

Antwort

86

Sie können ein Datum drehen Objekt in eine lange (in Millisekunden seit dem 1. Januar 1970), und dann TimeUnit verwenden, um die Anzahl der Sekunden zu erhalten:

long diffInMs = endDate.getTime() - startDate.getTime(); 

long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diffInMs); 

Edit: -Corrected den Namen der Variablen diffInMs, die in der zweiten Zeile diffInM (i) s geschrieben wurde.

4

Ergänzt diese Antwort nur für andere Entwickler (wie mich), die Time statt Date verwenden.

Time t1 = new Time(); 
t1.setToNow(); 
Thread.sleep(1000); 

Time t2 = new Time(); 
t2.setToNow(); 

diff = TimeUnit.MILLISECONDS.toSeconds(t2.toMillis(true)-t1.toMillis(true)); 
5

Versuch unter Methode: -

public String twoDatesBetweenTime(String oldtime) 
    { 
     // TODO Auto-generated method stub 
     int day = 0; 
     int hh = 0; 
     int mm = 0; 
     try 
     { 
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
      Date oldDate = dateFormat.parse(oldtime); 
      Date cDate = new Date(); 
      Long timeDiff = cDate.getTime() - oldDate.getTime(); 
      day = (int) TimeUnit.MILLISECONDS.toDays(timeDiff); 
      hh = (int) (TimeUnit.MILLISECONDS.toHours(timeDiff) - TimeUnit.DAYS.toHours(day)); 
      mm = (int) (TimeUnit.MILLISECONDS.toMinutes(timeDiff) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(timeDiff))); 
     } 
     catch (ParseException e) 
     { 
      e.printStackTrace(); 
     } 
     if(day==0) 
     { 
      return hh + " hour " + mm + " min"; 
     } 
     else if(hh==0) 
     { 
      return mm + " min"; 
     } 
     else 
     { 
      return day + " days " + hh + " hour " + mm + " min"; 
     } 
    } 
Verwandte Themen