4

現在の時刻(2012年10月1日午前11時)と同じ日の午前0時(2012年10月1日午後11時59分59秒)からの時間差をミリ秒単位で計算したいと思います。

私はこれを試しました

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.SECOND, 59);
    cal.add(Calendar.HOUR, 23);
    cal.add(Calendar.MINUTE, 59);
        cal.getTime().getTime() - today.getTime();

ここで今日は現在の日付です。

しかし、calとtodayの長い値を印刷すると、86400の場合の時差は約1日です。

4

2 に答える 2

10

cal.set()の代わりに使用cal.add()

Calendar cal = Calendar.getInstance();
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);

long diff = cal.getTime().getTime() - today.getTime();
于 2012-10-01T19:05:21.013 に答える
5

新しく作成されたカレンダーインスタンスに日付を設定できます。次に、を使用して現在のインスタンスと比較します。getTimeInMillis()

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.DATE, 1);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.YEAR, 2012);

long difference = cal.getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
于 2012-10-01T19:07:43.773 に答える