Como definir a hora base do Android Chronometer a partir do objeto Date?

Eu tenho um problema com o cronômetro de partida a partir do momento específico. Existe um objeto Date que eu quero que meu cronômetro inicie de:

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

Saída:

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]

Na verdade, por que esses valores longos de tempo são diferentes (11624388 e 1338644123032)?

Quando eu começo meu cronômetro da base

chronometer.setBase(SystemClock.elapsedRealtime());

- sempre funciona bem ("00:00" e subindo)

Mas quando tento definir a data de uma data anterior (por exemplo, ontem):

chronometer.setBase(yesterday.getTime());

- mostra "00: 0 (" e muda a cada segundo o último caractere para ")", "*", "/" e outros

Poderia, por favor, aconselhar como posso definir a base do cronômetro para um objeto Date?

questionAnswers(2)

yourAnswerToTheQuestion