Obtención del componente de tiempo de una fecha o calendario de Java

¿Existe una manera simple o elegante de capturar solo la hora del día (horas / minutos / segundos / milisegundos) parte de una Fecha Java (o Calendario, realmente no me importa)? Estoy buscando una buena forma de considerar por separado la fecha (año / mes / día) y las partes de la hora del día, pero por lo que puedo decir, no puedo acceder a cada campo por separado.

Sé que podría escribir mi propio método para capturar individualmente los campos que me interesan, pero lo estaría haciendo como un método de utilidad estática, que es feo. Además, sé que los objetos Fecha y Calendario tienen una precisión de milisegundos, pero no veo una forma de acceder al componente de milisegundos en ninguno de los casos.

Editar: No estaba claro al respecto: usar uno de Date :: getTime () o Calendar :: getTimeInMillis no me resulta muy útil, ya que estos devuelven la cantidad de milisegundos desde la época (representada por esa Fecha o Calendario), que en realidad no separa lahora del dia Del resto de la información.

La respuesta de @ Jherico es lo más cercano, creo, pero definitivamente es algo que todavía tengo que rodar en un método que escribo yo mismo. No es exactamente a lo que me dirijo, ya que aún incluye horas, minutos y segundos en el valor devuelto en milisegundos, aunque probablemente pueda hacerlo funcionar para mis propósitos.

Todavía pienso en cada componente comoseparar, aunque por supuesto, no lo son. Puede escribir una hora como el número de milisegundos desde una fecha de referencia arbitraria, o puede escribir la misma hora exactayear/month/day hours:minutes:seconds.milliseconds.

Esto no es para fines de visualización. Sé cómo usar unDateFormat para hacer bonitas cadenas de fecha.

Edición 2: Mi pregunta original surgió de un pequeño conjunto de funciones de utilidad que me encontré escribiendo, por ejemplo:

Comprobando si dosDates representan una fecha y hora en el mismo día;Verificación de si una fecha está dentro de un rango especificado por otras dos fechas, pero a veces se comprueba de forma inclusiva, y en ocasiones no, según el componente de tiempo.

¿Tiene Joda Time este tipo de funcionalidad?

Edición 3: La pregunta de @Jon con respecto a mi segundo requisito, solo para aclarar: el segundo es el resultado de usar mis Fechas para representar a veces días completos, donde el componente de tiempo no importa en absoluto, y en ocasiones representa una fecha y hora (que es, OMI, la palabra más precisa para algo que contieneyear/month/day y hours:minutes:seconds:...).

Cuando una Fecha representa un día completo, sus partes de tiempo son cero (por ejemplo, el "componente de tiempo" de la Fecha es medianoche) pero la semántica dicta que la verificación de rango se realiza inclusive en la fecha final. Debido a que solo dejo esta verificación hasta Fecha: antes y Fecha: después, tengo que agregar 1 día a la fecha de finalización, por lo tanto, la caja especial para cuando el componente de la fecha del día es cero.

Espero que eso no haya dejado las cosas menos claras.

Respuestas a la pregunta(10)

Su respuesta a la pregunta