despojar el tiempo de la marca de tiempo

¿Por qué no puedo borrar el tiempo de una marca de tiempo de esta manera?

one day == 24 * 3600 * 1000 == 86400000 milliseconds.

long ms = new Date().getTime();  //Mon Sep 03 10:06:59 CEST 2012
Date date = new Date(ms - (ms % 86400000));

como es que esto esMon Sep 03 02:00:00 CEST 2012 en lugar deMon Sep 03 00:00:00 CEST 2012?

Respuestas a la pregunta(3)

Su respuesta a la pregunta