Klasa Java LocalDate jest niezmienna, co oznacza, że po utworzeniu instancji nie można jej modyfikować. LocalDate udostępnia wiele przydatnych metod manipulowania datami i wykonywania zapytań o daty, takich jak dodawanie lub odejmowanie dni, miesięcy lub lat, pobieranie dnia tygodnia lub sprawdzanie, czy data przypada przed inną datą, czy po niej.
Przykład LocalDate
Zacznijmy od prostego przykładu, który tworzy instancję LocalDate dla bieżącej daty i wypisuje ją na konsoli:import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today's date: " + today);
}
}
W tym przykładzie importujemy klasę LocalDate z pakietu java.time i tworzymy nową instancję LocalDate o nazwie Today przy użyciu metody static now() . Ta metoda zwraca obiekt LocalDate reprezentujący bieżącą datę na podstawie zegara systemowego w domyślnej strefie czasowej. Następnie wypisujemy bieżącą datę na konsolę za pomocą metody println() obiektu System.out . Dane wyjściowe będą wyglądać mniej więcej tak:
Wyjście
Dzisiejsza data: 2023-05-01
Konstruktory LocalDate
Oprócz metody now() LocalDate udostępnia kilka innych konstruktorów, które umożliwiają tworzenie instancji LocalDate z różnych źródeł. Na przykład możesz utworzyć LocalDate na podstawie określonego roku, miesiąca i dnia:import java.time.LocalDate;
public class LocalDateConstructorExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.of(2023, 5, 1);
System.out.println("Date 1: " + date1);
}
}
Ten kod tworzy nową instancję LocalDate o nazwie date1 z rokiem 2023, miesiącem maj (reprezentowanym przez wartość 5) i dniem 1. Dane wyjściowe będą następujące:
Wyjście
Data 1: 2023-05-01
Manipulacja danymi lokalnymi
Jedną z najbardziej przydatnych funkcji LocalDate jest możliwość manipulowania datami. Na przykład możesz dodawać lub odejmować dni, miesiące lub lata, korzystając z metod plus i minus :import java.time.LocalDate;
public class LocalDateManipulationExample {
public static void main(String[] args) {
LocalDate date3 = LocalDate.parse("2023-05-01");
LocalDate date4 = date3.plusDays(1);
LocalDate date5 = date3.minusMonths(1);
LocalDate date6 = date3.plusYears(1);
System.out.println("Date 3: " + date3);
System.out.println("Date 4: " + date4);
System.out.println("Date 5: " + date5);
System.out.println("Date 6: " + date6);
}
}
W tym przykładzie najpierw tworzymy nową instancję LocalDate o nazwie date3 , analizując ciąg „2023-05-01”. Następnie tworzymy trzy nowe instancje LocalDate o nazwach date4 , date5 i date6 , dodając lub odejmując dni, miesiące lub lata od date3 . Dane wyjściowe będą następujące:
Data 3: 2023-05-01 Data 4: 2023-05-02 Data 5: 2023-04-01 Data 6: 2024-05-01
Porównywanie dat lokalnych
LocalDate udostępnia również metody porównywania dat. Możesz sprawdzić, czy dwie instancje LocalDate są równe lub czy jedna jest przed czy po drugiej, używając metod równości() , isBefore ( ) i isAfter() :import java.time.LocalDate;
public class LocalDateCompareExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.parse("2023-05-01");
LocalDate date2 = LocalDate.parse("2023-05-02");
System.out.println("Are the dates equal? " + date1.equals(date2));
System.out.println("Is date1 before date2? " + date1.isBefore(date2));
System.out.println("Is date2 after date1? " + date2.isAfter(date1));
}
}
W tym przykładzie tworzymy dwie instancje LocalDate o nazwach date1 i date2 , a następnie używamy metod równości() , isBefore() i isAfter() do ich porównania. Dane wyjściowe będą miały postać logiczną, tj. prawda lub fałsz :
Czy daty są równe? false Czy data 1 jest przed datą 2? true Czy data2 jest następująca po dacie1? PRAWDA
Data i godzina lokalna
Jeśli chcesz przedstawić datę i godzinę, możesz użyć klasy LocalDateTime , która jest podobna do LocalDate, ale zawiera składnik czasu. LocalDateTime udostępnia metody manipulowania i wysyłania zapytań zarówno do części daty, jak i godziny. Oto przykład tworzenia instancji LocalDateTime :import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime datetime = LocalDateTime.now();
System.out.println("Current date and time: " + datetime);
}
}
Ten kod importuje klasę LocalDateTime i tworzy nową instancję o nazwie datetime przy użyciu metody now() . Dane wyjściowe będą wyglądać mniej więcej tak:
Aktualna data i godzina: 2023-05-01T15:30:00.123456789
Uwaga: „T” na wyjściach wskazuje początek znacznika czasu.
GO TO FULL VERSION