Java
2018-12-12
Ostatnio miałem okazję pracować z klasą LocalDate. Pozwala ona na przyjemną pracę z datami. W tym artykule zamierzam opisać działanie i zastosowanie tej klasy.
Załóżmy sytuację kiedy posiadamy dwie daty:
2018-02-11 i 1998-03-21
I chcemy uzyskać różnicę pomiędzy tymi datami w różnych jednostkach czasowych.
Oczywiście możemy wyciągnąć osobno rok, miesiąc i dzień i odejmować od siebie, ale staje się to bardzo żmudne.
Na koniec zostaje jeszcze kwestia poprawności daty. Problematyczna jest np. data 31-02-1999. Jak wiadomo nie ma 31 lutego :).
Z pomocą przychodzi klasa LocalDate, która pozwala na pracę z datami jako obiektami.
Takie podejście pozwala operować na datach jak na obiektach, na które można odejmować dodawać i porównywać.
Poniżej znajduje się tabela z wybranymi przez mnie najważniejszymi metodami:
Aby data została poprawnie zinterpretowana musi spełniać normę ISO 8601.
ISO 8601
To znaczy musi być to poprawna data w formacie YYYY-MM-DD hh:mm:ss.
W przypadku niepowodzenia funkcja parse() wyrzuca wyjątek DateTimeParseException.
Daty możemy porównywać za pomocą funkcji isBefore lub isAfter.
W tym przypadku wypisze się tylko Jeszcze nie ma 15 grudnia. ponieważ 12 grudnia jest wcześniej niż 15.
Jak wcześniej wspomniałem daty można porównywać, ale dobrze by było także sprawdzić jaka jest różnica pomiędzy nimi.
Z pomocą przychodzi klasa Duration oraz jej funkcja between().
Po wykonaniu kodu wypisze się, że różnica to 3 dni albo 72 godziny albo 259200 sekund. Warto zwrócić uwagę, że potrzebne jest użycie atStartOfDay().
Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊
Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.
Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.