2017-07-17 7 views
-7

Ich möchte Unterschiede zwischen gegebenem Zeitstempel und aktueller Systemzeit finden.Finde den Unterschied zwischen zwei Zeitstempeln

Mein Code,

Long timeStamp=1500462813; 
long diff=(timeStamp*1000L) - System.currentTimeMillis(); 

diff i immer bin, ist nicht das, was ich bin expacting.

Ex. (1500462813 * 1000) -1500290013000 = 172800000

dies aktuell ist 1975.06.24, 05.30.00 Ich erwarte 2017.07.19, 16.43.33.

möchte den Unterschied zwischen der aktuellen Systemzeit und dem angegebenen Zeitstempel finden, um den Timer für die verbleibende Zeit laufen zu lassen.

+2

Was bekommen Sie und was erwarten Sie? –

+6

Der Unterschied zwischen zwei Zeitstempeln ist kein Datum. Es ist ... ein Unterschied. –

+0

Wie kann man einen Unterschied im Zeitstempel finden? –

Antwort

2

versuchen, diese Methode:

public static long getDateDiff(long timeUpdate, long timeNow, TimeUnit timeUnit) 
{ 
    long diffInMillies = Math.abs(timeNow- timeUpdate); 
    return timeUnit.convert(diffInMillies, TimeUnit.MILLISECONDS); 
} 

Es gibt Ihnen den Unterschied, gleich welcher Einheit (Tage, Jahre, ...).

long timestamp1 = 1500462813000; 
long timestamp2 = System.currentTimeMillis(); 
long diffInDays = getDateDiff(timestamp1, timestamp2, TimeUnit.DAYS); 
+2

Diese Antwort verwendet problematische alte Datum-Uhrzeit-Klassen, die jetzt veraltet sind und durch die Klassen java.time ersetzt werden. –

+0

Sie haben Recht - ich habe meine Antwort bearbeitet - es funktioniert auch ohne Datum. Nur der Zeitstempel wird benötigt. –

1

Versuchen:

long diff= System.currentTimeMillis() - givenTimeStamp; 
+4

Eine Erklärung wäre nett. Woher weißt du, dass dies die Frage wirklich beantwortet? –

+0

@TimBiegeleisen Sie noch nicht verstanden Frage –

0

Ich glaube, Sie den Unterschied, wie dieses

finden sollte
long timeStamp=System.currentTimeMillis(); 
long diff=(timeStamp-1500462813000); 

System.currentTimeMillis() wird immer größer, als die aktuelle

5

Zuerst sehe ich, dass Sie den Grundtyp verwenden long und die Klasse . Das ist keine gute Idee. Wenn Sie keine wirklich guten Gründe haben, die Klasse besser zu verwenden, verwenden Sie einfach long.

Du Initialisierung der Klasse Long mit einer ganzen Zahl:

Long timeStamp=1500462813; 

das eigentlich ein Compiler-Fehler ist. Daher konnte Ihr Code nicht kompiliert werden.

Wenn ich Ihre Frage richtig verstanden habe, wollen Sie die verbleibende Zeit bis zu einem Datum. Du bekommst es tatsächlich. In Millisekunden. Ihr Ergebnis ist die Zeit, die bis zu Ihrem Zeitstempeldatum verbleibt. Dieses Ergebnis ist kein Date allein. Es sind nur die Millisekunden bis zum gewünschten Datum.

+0

Wie Sie das Datum finden –

+2

Welches Datum möchten Sie bekommen? Du wolltest den Unterschied. Sie haben es. Der Unterschied konnte nicht als Datum interpretiert werden. – sgerodes

+1

Vielleicht könnten Sie mehr über Ihr Problem erklären. Schreib uns, was du machen willst, das Purpose. Wie ich verstanden habe, machst du alles richtig. Du hast einfach nicht verstanden, was du hast. – sgerodes

Verwandte Themen