Wie stelle ich die Basiszeit des Android Chronometers vom Datumsobjekt aus ein?

Ich habe ein Problem mit dem Starten des Chronometers ab der angegebenen Zeit. Es gibt ein Datumsobjekt, bei dem mein Chronometer beginnen soll:

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() +"]");

Ausgabe:

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]

Warum unterscheiden sich eigentlich diese langen Zeitwerte (11624388 und 1338644123032)?

Wenn ich meinen Chronometer von der Basis starte

chronometer.setBase(SystemClock.elapsedRealtime());

- es funktioniert immer gut ("00:00" und steigend)

Aber wenn ich versuche, das Datum eines vergangenen Datums (z. B. gestern) festzulegen:

chronometer.setBase(yesterday.getTime());

- Es zeigt "00: 0" (und ändert jede Sekunde das letzte Zeichen in ")", "*", "/" und andere

Können Sie mir bitte mitteilen, wie ich die Chronometerbasis auf ein Datumsobjekt einstellen kann?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage