2017-06-16 2 views
-4

Wollen Unterschied zwischen zwei mal Ich habe zwei Mal 12.16.40 und 12.16.50 zu finden. Ich will Unterschied ist 10 Sekunden wenn der Unterschied in Minuten ist dann zeigen Sie die Differenz in Minuten oder wenn der Unterschied in Sekunden ist dann zeigen Sie den Unterschied Sekunden und so weiter.Android finden Aufreiben Zeit oder Ehrerbietung zwischen zwei mal

Ich möchte eine Antwort wie diese

2 sec vor

5 Minuten vor

2 Stunden

Date date = new Date(); 
DateFormat formatter = new SimpleDateFormat("HH:mm:ss"); // Hours:Minutes:Seconds 
String dateFormatted = formatter.format(date); 
+0

Sie möchten also eine Zeitdifferenz, ausgedrückt in Millisekunden, abhängig von der Größe der Differenz anzeigen? Verwenden Sie einige if-Anweisungen, um die Fälle zu unterscheiden. – Henry

+1

Mögliches Duplikat von [Zeitunterschied zwischen zwei Zeitpunkten] (https://stackoverflow.com/questions/15360123/time-difference-between-two-times) –

+0

Durchsuchen Sie Stack Overflow vor dem Senden. Dieses Thema wurde schon viele Male angesprochen. –

Antwort

0

Hallo Sie unter Code verwenden können, dies ist das Beispiel, ich habe vorausgesetzt, dass Sie Änderungen gemäß Ihren Anforderungen vornehmen müssen

try { 

       Calendar c2 = Calendar.getInstance(); 
       SimpleDateFormat df2 = new SimpleDateFormat("HH:mm:ss aa",Locale.US); 
       String formattedTime = df2.format(c2.getTime()); 
       date2 = df2.parse(formattedTime); 

       long mills = date2.getTime() - date1.getTime(); 


       int Hours = (int) (mills/(1000 * 60 * 60)); 
       int Minuets = (int) (mills/(1000*60)) % 60; 
       int Seconds = (int) (mills/1000) % 60; 

       String hr = String.format("%02d", Hours); 
       String min = String.format("%02d", Minuets); 
       String sec = String.format("%02d", Seconds); 


       endTime = hr + ":" + min + ":" +sec; // updated value every1 second 

      } catch (ParseException e) { 
       e.printStackTrace(); 
      } 

Also für Ihre Frage Verwendung unten Funktion Antwort zu erhalten und unten importieren clases

import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 

private void cluclate() 
{ 
    Date date1,date2; 

    try { 

     String endTime; 

     Calendar c1 = Calendar.getInstance(); 
     c1.add(Calendar.HOUR,12); 
     c1.add(Calendar.MINUTE,16); 
     c1.add(Calendar.SECOND,40); 
     SimpleDateFormat df1 = new SimpleDateFormat("HH:mm:ss", Locale.US); 
     String formattedTime1 = df1.format(c1.getTime()); 
     date1 = df1.parse(formattedTime1); 


     Calendar c2 = Calendar.getInstance(); 
     c2.add(Calendar.HOUR,12); 
     c2.add(Calendar.MINUTE,16); 
     c2.add(Calendar.SECOND,50); 
     SimpleDateFormat df2 = new SimpleDateFormat("HH:mm:ss",Locale.US); 
     String formattedTime2 = df2.format(c2.getTime()); 
     date2 = df2.parse(formattedTime2); 


     long mills = date2.getTime() - date1.getTime(); 


     int Hours = (int) (mills/(1000 * 60 * 60)); 
     int Minuets = (int) (mills/(1000*60)) % 60; 
     int Seconds = (int) (mills/1000) % 60; 

     String hr = String.format("%02d", Hours); 
     String min = String.format("%02d", Minuets); 
     String sec = String.format("%02d", Seconds); 


     endTime = hr + ":" + min + ":" +sec; // updated value every1 second 

     Log.d("=============>>>>",endTime); 

    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
} 
+0

Es wird nicht Sekunden richtig berechnen – Ahmad

+0

Seine woking gut werde ich aktualisierte Antwort posten – Anil

+0

Finden Sie die aktualisierte Antwort und versuchen – Anil

0

Try this:

long firstTime = System.currentTimeMillis(); 
    /* 
    your operations should do here 
    */ 
    long secondTime = System.currentTimeMillis(); 
    long difference = secondTime - firstTime; 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(difference); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss", Locale.GERMANY); 
    String yourDate = simpleDateFormat.format(calendar); 
0

Verwenden Sie den folgenden Code in ein lauffähiges, so dass es bei der Kontrolle hält.

Calendar c2 = Calendar.getInstance(); 
SimpleDateFormat df2 = new SimpleDateFormat("HH:mm:ss aa",Locale.US); 
String formattedTime = df2.format(c2.getTime()); 
date2 = df2.parse(formattedTime); 
//date1 is the first time, date2 is current time. 
long mills = date2.getTime() - date1.getTime(); 

int Hours = (int) (mills/(1000 * 60 * 60)); 
int Minuets = (int) (mills/(1000*60)) % 60; 
int Seconds = (int) (mills/1000) % 60; 

if(Hours == 0) { 
    if(Minutes == 0) { 
     displayString = Seconds.toString() + " ago"; 
    } else { 
     displayString = Minutes.toString() + " ago"; 
    } 
} else { 
    displayString = Hours.toString() + " ago"; 
} 
0

Dies kann problemlos mit der DateUtils-Klasse erreicht werden.

getRelativeTimeSpanString(long time, long now, long minResolution)

Calendar time = Calendar.getInstance(); 
time.set(Calendar.HOUR, 12); 
time.set(Calendar.MINUTE, 16); 
time.set(Calendar.SECOND, 40); 

Calendar now = Calendar.getInstance(); 
now.set(Calendar.HOUR, 12); 
now.set(Calendar.MINUTE, 16); 
now.set(Calendar.SECOND, 50); 
System.out.println(DateUtils.getRelativeTimeSpanString(time.getTimeInMillis(), now.getTimeInMillis(), DateUtils.SECOND_IN_MILLIS)); 

Dies wird auch dann gültig, wenn die Zeitdifferenz in Minuten oder Stunden.

+0

Wenn ich Zeit einstellen werde time.set (Calendar.HOUR, 12); time.set (Kalender.MINUTE, 16); time.set (Kalender.SECOND, 40); Kalender jetzt = Calendar.getInstance(); now.set (Kalender.HOUR, 2); now.set (Kalender.MINUTE, 11); now.set (Calendar.SECOND, 50); es wird in 10 Stunden – Ahmad

+0

Es kommt auf das Datum in der Zeit und jetzt Variablen. – BhalchandraSW

Verwandte Themen