Робота із датами. LocalDate

Прокрутити вниз

Робота із датами. LocalDate – онлайн курс програмування. В Java для роботи з датами та часом використовується пакет `java.time`, що був введений в Java 8. Один із основних класів цього пакету для роботи з датами — `LocalDate`. Він представляє собою дату без інформації про час і часовий пояс. Це дозволяє зручно працювати з такими концепціями, як дати народження, дати подій, дні року тощо.

Основні можливості `LocalDate`

1. Створення об’єкта `LocalDate`

Для створення об’єкта `LocalDate` можна скористатися кількома статичними методами:

  • `LocalDate.now()` — повертає поточну дату:
    LocalDate currentDate = LocalDate.now();
    System.out.println(“Поточна дата: ” + currentDate);
  • `LocalDate.of(year, month, dayOfMonth)` — створює конкретну дату, вказавши рік, місяць і день:
    LocalDate specificDate = LocalDate.of(2023, 10, 17);
    System.out.println(“Конкретна дата: ” + specificDate);
  • `LocalDate.parse(String date)` — перетворює рядок у форматі `yyyy-MM-dd` на об’єкт `LocalDate`:
    LocalDate parsedDate = LocalDate.parse(“2024-05-25”);
    System.out.println(“Парсинг дати: ” + parsedDate);

2. Отримання частин дати

Клас `LocalDate` дозволяє отримати різні частини дати, такі як рік, місяць або день:

  • Отримання року:
    int year = currentDate.getYear();
    System.out.println(“Рік: ” + year);
  • Отримання місяця:
    int month = currentDate.getMonthValue();
    System.out.println(“Місяць: ” + month);
  • Отримання дня місяця:
    int dayOfMonth = currentDate.getDayOfMonth();
    System.out.println(“День місяця: ” + dayOfMonth);
  • Отримання дня тижня:
    DayOfWeek dayOfWeek = currentDate.getDayOfWeek();
    System.out.println(“День тижня: ” + dayOfWeek);

3. Операції з датами

Клас `LocalDate` надає методи для додавання або віднімання днів, місяців, років та інших операцій.

  • Додавання днів, місяців, років:
    LocalDate nextWeek = currentDate.plusDays(7);
    LocalDate nextMonth = currentDate.plusMonths(1);
    LocalDate nextYear = currentDate.plusYears(1);
    System.out.println(“Через тиждень: ” + nextWeek);
    System.out.println(“Через місяць: ” + nextMonth);
    System.out.println(“Через рік: ” + nextYear);
  • Віднімання днів, місяців, років:
    LocalDate lastWeek = currentDate.minusDays(7);
    LocalDate lastMonth = currentDate.minusMonths(1);
    LocalDate lastYear = currentDate.minusYears(1);
    System.out.println(“Минулого тижня: ” + lastWeek);
    System.out.println(“Минулого місяця: ” + lastMonth);
    System.out.println(“Минулого року: ” + lastYear);
  • Порівняння дат:
    LocalDate date1 = LocalDate.of(2023, 1, 1);
    LocalDate date2 = LocalDate.of(2023, 12, 31);
    boolean isBefore = date1.isBefore(date2); // Чи date1 перед date2
    boolean isAfter = date1.isAfter(date2); // Чи date1 після date2
    boolean isEqual = date1.isEqual(date2); // Чи дати рівні
    System.out.println(“Перша дата перед другою? ” + isBefore);
    System.out.println(“Перша дата після другої? ” + isAfter);
    System.out.println(“Дати рівні? ” + isEqual);

4. Перевірки і властивості дати

Клас `LocalDate` надає також зручні методи для перевірки характеристик дати:

  • Чи є рік високосним:
    boolean isLeapYear = currentDate.isLeapYear();
    System.out.println(“Чи високосний рік? ” + isLeapYear);
  • Отримання кількості днів у місяці:
    int lengthOfMonth = currentDate.lengthOfMonth();
    System.out.println(“Кількість днів у місяці: ” + lengthOfMonth);
  • Отримання кількості днів у році:
    int lengthOfYear = currentDate.lengthOfYear();
    System.out.println(“Кількість днів у році: ” + lengthOfYear);

5. Форматування дат

Щоб представити дату у потрібному форматі, використовують клас **`DateTimeFormatter`**:

  • Форматування дати у рядок:
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“dd-MM-yyyy”);
    String formattedDate = currentDate.format(formatter);
    System.out.println(“Форматована дата: ” + formattedDate);
  • Парсинг рядка з певним форматом:
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“dd-MM-yyyy”);
    LocalDate parsedDate = LocalDate.parse(“25-05-2024”, formatter);
    System.out.println(“Парсинг дати: ” + parsedDate);

Приклад використання `LocalDate`:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class LocalDateExample {
public static void main(String[] args) {
// Створення дати
LocalDate currentDate = LocalDate.now();
LocalDate specificDate = LocalDate.of(2023, 10, 17);
LocalDate parsedDate = LocalDate.parse(“2024-05-25”);

System.out.println(“Поточна дата: ” + currentDate);
System.out.println(“Конкретна дата: ” + specificDate);
System.out.println(“Парсинг дати: ” + parsedDate);

// Операції з датами
LocalDate nextWeek = currentDate.plusDays(7);
LocalDate lastMonth = currentDate.minusMonths(1);
System.out.println(“Через тиждень: ” + nextWeek);
System.out.println(“Минулого місяця: ” + lastMonth);

// Форматування дати
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“dd-MM-yyyy”);
String formattedDate = currentDate.format(formatter);
System.out.println(“Форматована дата: ” + formattedDate);

// Порівняння дат
boolean isBefore = specificDate.isBefore(parsedDate);
System.out.println(“Чи specificDate перед parsedDate? ” + isBefore);
}
}

Висновок

Клас `LocalDate` — це потужний інструмент для роботи з датами в Java, який надає зручні методи для маніпулювання, порівняння та форматування дат. Він є частиною нового API для роботи з датами та часом у Java, що забезпечує більшу гнучкість та простоту у використанні в порівнянні зі старими класами, такими як `Date` і `Calendar`.

Робота із датами. LocalDate