Получение компонента Time для даты или календаря Java

Есть ли простой или элегантный способ получить только время суток (часы / минуты / секунды / миллисекунды) части даты Java (или календаря, для меня это на самом деле не имеет значения)? Я ищу хороший способ отдельно рассмотреть дату (год / месяц / день) и время суток, но, насколько я могу судить, я застрял с доступом к каждому полю в отдельности.

Я знаю, что мог бы написать свой собственный метод для индивидуального захвата интересующих меня полей, но я бы делал это как статический служебный метод, который уродлив. Кроме того, я знаю, что объекты Date и Calendar имеют точность в миллисекундах, но я не вижу способа доступа к компоненту в миллисекундах ни в одном случае.

Редактировать: Я не был уверен в этом: использование одного из Date :: getTime () или Calendar :: getTimeInMillis не очень полезно для меня, так как они возвращают количество миллисекунд с начала эпохи (представленной этой датой или календарем), что на самом деле не разделяетвремя суток из остальной информации.

@ Думаю, ответ Джерико - самый близкий, но определенно это то, что мне все равно придется использовать в методе, который я сам пишу. Это не совсем то, к чему я стремлюсь, поскольку в возвращаемое значение в миллисекундах по-прежнему включаются часы, минуты и секунды, хотя, возможно, я мог бы заставить его работать для моих целей.

Я все еще думаю о каждом компоненте какотдельныйХотя, конечно, это не так. Вы можете записать время как число миллисекунд с произвольной контрольной даты, или вы можете написать точно такое же время, какyear/month/day hours:minutes:seconds.milliseconds.

Это не для целей отображения. Я знаю, как использоватьDateFormat сделать красивые строки даты.

Изменить 2: Мой первоначальный вопрос возник из небольшого набора утилитарных функций, которые я написал сам, например:

Проверяем ли дваDates представляют дату и время в тот же день;Проверка, находится ли дата в пределах диапазона, заданного двумя другими датами, но иногда проверка включительно, а иногда нет, в зависимости от компонента времени.

Есть ли у Joda Time такой тип функциональности?

Изменить 3: @ Вопрос Джона относительно моего второго требования, просто для пояснения: второе требование - это результат использования моих дат, чтобы иногда представлять целые дни - где компонент времени вообще не имеет значения - а иногда представлять дату-время (то есть, ИМО, самое точное слово для чего-то, что содержитyear/month/day а также hours:minutes:seconds:...).

Когда Date представляет целый день, его части времени равны нулю (например, «компонент времени» Date - полночь), но семантика диктует, что проверка диапазона выполняется включительно в дату окончания. Поскольку я просто оставляю эту проверку до Date :: before и Date :: after, я должен добавить 1 день к дате окончания - отсюда особый случай, когда компонент времени дня в Date равен нулю.

Надеюсь, это не сделало вещи менее ясными.

Ответы на вопрос(10)

Ваш ответ на вопрос