¿Cómo configurar la hora base del cronómetro de Android desde el objeto Fecha?

Tengo un problema con el inicio del cronómetro desde el momento específico. Hay un objeto Date en el que quiero que empiece mi cronómetro:

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

Salida:

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]

En realidad, ¿por qué difieren estos largos valores de tiempo (11624388 y 1338644123032)?

Cuando arranco mi cronómetro desde la base

chronometer.setBase(SystemClock.elapsedRealtime());

- Siempre funciona bien ("00:00" y subiendo)

Pero cuando intento establecer la fecha a partir de una Fecha pasada (por ejemplo, ayer):

chronometer.setBase(yesterday.getTime());

- muestra "00: 0 (" y cambia cada segundo el último carácter a ")", "*", "/" y otros

¿Podría por favor informar cómo puedo configurar la base del cronómetro para un objeto de fecha?

Respuestas a la pregunta(2)

Su respuesta a la pregunta