Java 8 ma zupełnie nową bibliotekę dat i godzin w pakiecie java.time, co jest bardzo mile widziane dla każdego, kto musiał wcześniej używać JodaTime lub miał problemy z tworzeniem własnych metod pomocniczych przetwarzania daty. Wiele klas w tym pakiecie reprezentuje znaczniki czasu i mają metody pomocnicze, takie jak getHour()
uzyskiwanie godzin od znacznika czasu, getMinute()
uzyskiwanie minut od znacznika czasu, getNano()
uzyskiwanie nanosów z znacznika czasu itp.
Zauważyłem, że nie mają metody wywołania getMillis()
milisów znacznika czasu. Zamiast tego trzeba by wywołać metodę get(ChronoField.MILLI_OF_SECOND)
. Dla mnie to wydaje się niespójnością w bibliotece. Czy ktoś wie, dlaczego brakuje takiej metody lub skoro Java 8 jest wciąż w fazie rozwoju, czy istnieje możliwość, że zostanie ona dodana później?
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
Klasy zdefiniowane tutaj reprezentują podstawowe pojęcia data-czas, w tym momenty, czasy trwania, daty, godziny, strefy czasowe i okresy. Opierają się na systemie kalendarza ISO, który jest de facto kalendarzem światowym, opartym na proleptycznych zasadach gregoriańskich. Wszystkie klasy są niezmienne i bezpieczne dla wątków.
Każda instancja daty i godziny składa się z pól, które są dogodnie udostępniane przez interfejsy API. Aby uzyskać dostęp do pól na niższym poziomie, patrz
java.time.temporal
pakiet. Każda klasa obejmuje obsługę drukowania i analizowania wszystkich dat i godzin. Informacje na tematjava.time.format
opcji dostosowywania znajdują się w pakiecie ...
Przykład tego rodzaju klasy:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
Data i godzina bez strefy czasowej w systemie kalendarza ISO-8601, np. 2007-12-03T10: 15: 30.
LocalDateTime
jest niezmiennym obiektem data-godzina, który reprezentuje datę-godzinę, często postrzeganą jako rok-miesiąc-dzień-godzina-minuta-sekunda. Można również uzyskać dostęp do innych pól daty i godziny, takich jak dzień roku, dzień tygodnia i tydzień roku. Czas jest reprezentowany z dokładnością do nanosekund. Na przykład wartość „2 października 2007 o 13: 45.30.123456789” można zapisać wLocalDateTime
...
Instant
klasy
get()
, zamiast nadawać im indywidualne, unikalne nazwy. Jeśli ci to przeszkadza, napisz klasę, która dziedziczy klasę oryginalną, i umieść własnągetMillis()
metodę w nowej klasie.