Sí, tienes razón, para mi no es muy normal andar utilizando la fecha base del calendario para realizar diferencias de horas.
¿por qué no miras la diferencia entre las 23:00 y las 1:00 con tu código anterior? eso es más ameno
En resumen: Usa formato de fecha y hora
siempre. No dejes los milisegundos en olvido si quieres precisión de 1 segundo (ten en cuenta que un milisegundo es el culpable de tener un segundo menos en el resultado, un minuto menos, una hora menos ...

)
Saludos