特定の時刻からクロノメーターを開始する際に問題が発生しました。クロノメーターを開始したい Date オブジェクトがあります。
Date d = new Date(); //now, just for example
chronometer.setBase(d.getTime()); //long value of d
Log.d("Date: " , "d.getTime() time is [" + d.getTime() +"]");
Log.d("Chron: " , "chronometer.getBase() is [" + chronometer.getBase() +"]");
//let's print out elapsedRealtime from official sample
Log.d("Chron: " , "SystemClock.elapsedRealtime() is [" + SystemClock.elapsedRealtime() +"]");
出力:
06-02 13:35:23.025: D/Date:(928): d.getTime() time is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): chronometer.getBase() is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): SystemClock.elapsedRealtime() is [11624388]
実際、この長い時間の値が異なるのはなぜですか (11624388 と 1338644123032)?
ベースからクロノメーターを起動すると
chronometer.setBase(SystemClock.elapsedRealtime());
- 常に正常に動作します (「00:00」以降)
しかし、過去の日付 (fe 昨日) から日付を設定しようとすると:
chronometer.setBase(yesterday.getTime());
- 「00:0(」を表示し、毎秒最新の文字を「)」、「*」、「/」などに変更します
クロノメーターのベースを Date オブジェクトに設定する方法を教えてください。