Wie finden Sie die Differenz von zwei timestamps in java?
Ich habe eine ArrayList
darunter sind mehrere, der Anzahl der Zeit-Stempel und das Ziel ist das finden der Unterschied von der ersten und der letzten Elemente der ArrayList
.
String a = ArrayList.get(0);
String b = ArrayList.get(ArrayList.size()-1);
long diff = b.getTime() - a.getTime();
Ich auch konvertiert werden die Typen int, aber immer noch gibt es mir einen Fehler The method getTime is undefined for the type String
.
Zusätzliche info :
Ich habe eine Klasse A, die beinhaltet
String timeStamp = new SimpleDateFormat("ss S").format(new Date());
und es ist eine Klasse B, die noch eine Methode private void dialogDuration(String timeStamp)
sowie dialogueDuration
Methode umfasst:
String a = timeSt.get(0); //timeSt is an ArrayList which includes all the timeStamps
String b = timeSt.get(timeSt.size()-1); //This method aims finding the difference of the first and the last elements(timestamps) of the ArrayList (in seconds)
long i = Long.parseLong(a);
long j = Long.parseLong(b);
long diff = j.getTime()- i.getTime();
System.out.println("a: " +i);
System.out.println("b: " +j);
Und eine Bedingung ist, dass die Aussage(String timeStamp = new SimpleDateFormat("ss S").format(new Date());
) nicht geändert in der Klasse a Und ein Objekt der Klasse B wird angelegt, in der Klasse A, so dass es ruft die dialogueDuration(timeStamp)
- Methode auf und übergibt die Werte der Zeit-Stempel zu Klasse B.
Mein problem ist dieser Subtraktion nicht funktioniert, gibt es einen Fehler cannot invoke getTime() method on the primitive type long
. Es gibt die gleiche Art von Fehler auch für int-und String-Typen?
Vielen Dank im Voraus!
getTime()
zu tun, wenn man auf einen string? Was genau hat Ihren ArrayList
bestehen? (Und warum tun Sie haben offenbar eine variable namens ArrayList
? Das ist sehr verwirrend.)ich erwarte, dass getTime() mir zu helfen, um die Differenz des ersten und letzten Zeitstempel.aber anscheinend funktioniert es nicht wirith Saiten, aber es funktioniert entweder nicht mit integer-Typ. Meine Arraylist besteht nur aus den Zeitstempeln. meine variable nicht genannt eigentlich Arraylist.schrieb ich ot wie dies nur zu machen es offensichtlich, dass es eine array-Liste.
Sie müssen zeigen Proben Ihres eigentlichen Daten.Einfach zu sagen: Sie sind Zeichenfolgen, ist nicht sehr hilfreich - strings in welchem format?
Ich fügte einige weitere Informationen zu meinem code, könntest du bitte schauen Sie wieder? Ich denke, jetzt ist es klarer, was ich m versuchen zu tun!! Vielen Dank...
Sie haben noch nicht die gemeinsame Sache, die ich gestellt habe doppelt: die Daten. Sie haben gesagt, dass es enthält "Zeitstempel", aber nichts über, was diese Aussehen.
InformationsquelleAutor user2052015 | 2013-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht so:
long i = Long.parseLong (); long j = Lang.parseLong(b); long diff = j.getTime()- ich.getTime(); System.aus.println("a:" +i); System.aus.println("b:" +j);
Und eine Bedingung ist, dass die Aussage( [ String timeStamp = new " = SimpleDateFormat("ss-S").format(new Date()); ]) nicht geändert in der Klasse a Und ein Objekt der Klasse B wird angelegt, in der Klasse A, so dass es ruft die dialogueDuration(timeStamp) - Methode auf und übergibt die Werte der Zeitstempel der Klasse B. Mein problem ist dieser Abzug nicht funktioniert, gibt es einen Fehler(kann nicht aufrufen getTime () - Methode auf den primitiven Typ long). es gibt die gleiche Art von Fehler auch für int-und String-Typen ?
Sie können nur call getTime auf eine Timestamp-Objekt oder ein Date-Objekt. Wenn Sie eine Zeichenfolge ein (die Sie an die Methode übergeben dialogDuration) Sie haben zu analysieren, ihn wieder in ein Timestamp-Objekt oder ein Datum-Objekt, so dass Sie können call getTime auf Sie und erhalten Sie Ihre long-Wert.
Vielen Dank Marc aber könnten Sie mir bitte helfen mit einem Beispiel, weil ich m Art der Neuling in java und weiß nicht, wie es genau???
InformationsquelleAutor Marc-Emmanuel Ramage
Vorausgesetzt Sie haben die Timestamp-Objekte oder Date-Objekte in deiner ArrayList, die Sie tun könnten:
So können Sie nicht rufen getTime auf ein String-Objekt, denn es ist nicht ein Mitglied dieser Klasse. Sie Parsen Sie den String und das format in einer Weise, die Sie werfen kann, ist es in langen.
Hi, deine Antwort ist sehr gut und hat mir viel geholfen. Aber das problem ist hier nicht im Zusammenhang mit arrays in keiner Weise, so dass ich lassen Sie mich Bearbeiten Sie, entfernen das Zeug, das nur gestört, mich für eine Weile 😉 Es geht um den Typ der Variablen - OP arbeitet auf
String
s, während diese Antwort ist für diejenigen, die arbeiten aufTimestamp
Objekte (wie mich). Egal, ob Sie in Arrays oder Variablen getrennt.InformationsquelleAutor Marc-Emmanuel Ramage
Sollten Sie Ihre
ArrayList x
zu einemArrayList<TimeStamp> x
. Anschließend wird die Methodeget(int)
zur Rückgabe eines Objekts vom TypTimeStamp
(statt eine ArtString
). Auf einemTimeStamp
dürfen Sie zum aufrufengetTime()
.Durch die Art und Weise, tun Sie wirklich brauchen
java.sql.TimeStamp
? Vielleicht eine einfacheDate
oderCalendar
ist einfacher und praktikabler.InformationsquelleAutor poitroae