Pobieranie komponentu czasu daty lub kalendarza Java

Czy istnieje prosty lub elegancki sposób na pobranie pory dnia (godziny / minuty / sekundy / milisekundy) części daty Java (lub kalendarza, to naprawdę nie ma dla mnie znaczenia)? Szukam miłego sposobu na osobne rozważenie daty (rok / miesiąc / dzień) i części dnia, ale, o ile wiem, utknąłem w dostępie do każdego pola osobno.

Wiem, że mógłbym napisać własną metodę, aby indywidualnie pobrać pola, które mnie interesują, ale robiłbym to jako statyczną metodę użyteczności, która jest brzydka. Wiem też, że obiekty Date i Calendar mają milisekundową precyzję, ale nie widzę sposobu na uzyskanie dostępu do komponentu milisekundowego w obu przypadkach.

Edytować: Nie miałem jasności co do tego: użycie jednego z Date :: getTime () lub Calendar :: getTimeInMillis nie jest mi szczególnie przydatne, ponieważ zwracają one liczbę milisekund od epoki (reprezentowaną przez tę datę lub kalendarz), które tak naprawdę nie oddzielapora dnia z pozostałej części informacji.

Odpowiedź @ Jherico jest najbliższą rzeczą, jak sądzę, ale zdecydowanie jest to coś, co wciąż muszę wprowadzić w metodę, którą sam piszę. Nie jest to dokładnie to, do czego dążę, ponieważ wciąż zawiera godziny, minuty i sekundy w zwróconej wartości milisekundy - chociaż prawdopodobnie mógłbym sprawić, by działało to dla moich celów.

Nadal myślę o każdym elemencie jakooddzielny, choć oczywiście nie są. Możesz napisać czas jako liczbę milisekund od arbitralnej daty odniesienia lub możesz napisać dokładnie ten sam czas coyear/month/day hours:minutes:seconds.milliseconds.

To nie jest do celów wyświetlania. Wiem, jak używać aDateFormat robić ładne sznurki z datami.

Edytuj 2: Moje pierwotne pytanie wynikało z małego zestawu funkcji użytkowych, które napisałem - na przykład:

Sprawdzam, czy dwaDates reprezentują datę i godzinę tego samego dnia;Sprawdzanie, czy data mieści się w zakresie określonym przez dwie inne daty, ale czasami sprawdzanie łącznie, a czasami nie, w zależności od składnika czasu.

Czy Joda Time ma ten rodzaj funkcjonalności?

Edytuj 3: @ Pytanie Jona dotyczące mojego drugiego wymogu, tylko po to, by wyjaśnić: Drugim wymaganiem jest użycie moich Daty do reprezentowania całych dni - gdzie komponent czasu w ogóle nie ma znaczenia - i czasami reprezentuje datę-czas (co jest, IMO, najdokładniejsze słowo na coś, co zawierayear/month/day i hours:minutes:seconds:...).

Gdy data reprezentuje cały dzień, jej części czasowe są zerowe (np. „Składnik czasu” Date jest północą), ale semantyka wymaga, aby sprawdzanie zasięgu odbywało się łącznie w dniu końcowym. Ponieważ po prostu pozostawiam to sprawdzanie do Date :: before i Date :: after, muszę dodać 1 dzień do daty końcowej - stąd specjalna obudowa, w której składnik daty w Dacie wynosi zero.

Mam nadzieję, że nie uczyniło to rzeczy mniej jasnymi.

questionAnswers(10)

yourAnswerToTheQuestion