Java - LocalDate

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.

Problem

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 wiadmo nie ma 31 lutego :).

Rozwiązanie

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:

Interpretacja daty

Aby data została poprawnie zainterpretowana musi spełniać normę 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.

Porównywanie dat

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.

Różnica pomiędzy datami

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. Java oferuje jeszcze dużo ciekawych biblotek, które ułatwiają życie programistów. Na pewno nie raz o nich napiszę ;)

shop
Otwórz Sklep Play

Zachęcam cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.