web-dev-qa-db-ja.com

Javaで2つのタイムスタンプの違いを見つける方法は?

いくつかのタイムスタンプを含むArrayListがあり、その目的はArrayListの最初と最後の要素の違いを見つけることです。

_String a = ArrayList.get(0);
String b = ArrayList.get(ArrayList.size()-1);
long diff = b.getTime() - a.getTime();
_

タイプもintに変換しましたが、それでもエラー_The method getTime is undefined for the type String_が発生します。

追加情報 :

私は含むクラスAを持っています

_String timeStamp = new SimpleDateFormat("ss S").format(new Date());
_

そして、メソッドprivate void dialogDuration(String timeStamp)を持つクラスBがあります

dialogueDurationメソッドには以下が含まれます:

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

そして、1つの条件は、statement(String timeStamp = new SimpleDateFormat("ss S").format(new Date());)がクラスAで変更されないことです。そして、クラスBのオブジェクトがクラスAで作成され、dialogueDuration(timeStamp)メソッドを呼び出して、クラスBへのタイムスタンプの値。

私の問題は、この減算が機能せず、エラーcannot invoke getTime() method on the primitive type longが発生することです。それはintとString型にも同じ種類のエラーを与えますか?

よろしくお願いします!

9
user2052015

多分このように:

SimpleDateFormat dateFormat = new SimpleDateFormat("ss S");
Date firstParsedDate = dateFormat.parse(a);
Date secondParsedDate = dateFormat.parse(b);
long diff = secondParsedDate.getTime() - firstParsedDate.getTime();
12

ArrayListにTimestampオブジェクトまたはDateオブジェクトがあると仮定すると、次のことができます。

Timestamp a = timeSt.get(0);

Timestamp b = timeSt.get(timeSt.size()-1);

long diff = b.getTime() - a.getTime();