3

私はAndroid開発に慣れていないので、2つの日時形式の違いを計算するためのコードを見つけることができません. 私の質問はです。

次のように日時の応答を取得しているプロジェクトで webservice を使用しています。

 starttime  :- [2012-11-04 10:00:00]
 endtime    :- [2012-11-04 12:00:00]

ここでは、次のように画面に表示したい

   Today Timings  :-  2012-11-04   2 hours

2 つの日付の差を計算し、時差を画面に表示する必要があることを意味します。

誰でもこれで私を助けてくれませんか。

4

4 に答える 4

1

日時オブジェクトを取得する正確な形式がわかっている場合は、AndroidのSimpleDateFormatクラスを使用して、文字列で表現された日付の形式を指定して文字列を日付として解析できます。あなたの質問のために:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = sdf.parse(<startTime/endTime String>, 0);

同様に終了時間を解析すると、個々のオブジェクトのgetTime()を使用して差を取得できます。

long diff = endTime.getTime() - startTime.getTime()

次に、以下を使用して差を時間に変換するのと同じくらい簡単です。

int hours = (int)(diff/(60*60*1000));

お役に立てば幸いです。

于 2012-11-04T05:55:00.340 に答える
0

使用しjava.util.Date;ている場合は、中間変数を使用する必要があります。日付をlong値に変換してそれらを減算してから、ロングを日付に戻すことができます。

    long diff = new Date().getTime() - new Date(milliseconds).getTime();
    Date dateDiff = new Date(diff);

ただし、夏時間やその他の変数は考慮されていないことに注意してください。あなたがそのように慎重であるならば、あなたはこの交換日付クラスにふけるかもしれません。それはあなたが求める機能を持っています。

于 2012-11-04T06:00:30.420 に答える
0

このコードを使用して、2 つの日付の差を取得します。

public void getTimeDifference(Date endDate,Date startDate) {
            Date diff = new Date(endDate.getTime() - startDate.getTime());
            Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
            calendar.setTime(diff);
            int day=calendar.get(Calendar.DAY_OF_MONTH);
            int hours = calendar.get(Calendar.HOUR_OF_DAY);
            }
        }
于 2015-11-14T07:24:48.320 に答える