LocalDateTime.toLocalDate în Java

Extrage doar data (fără oră) dintr-un LocalDateTime; toLocalTime extrage doar ora.

Sintaxă
LocalDate toLocalDate()
LocalTime toLocalTime()

Ce face LocalDateTime.toLocalDate

toLocalDate() păstrează anul, luna și ziua și renunță la oră. Este utilă când grupezi evenimente pe zile, de exemplu comenzile dintr-un magazin online sau intrările într-un jurnal.

Perechea ei, toLocalTime(), returnează doar ora. Operația inversă este data.atTime(ora) sau data.atStartOfDay() (ora 00:00).

Ce returnează

Un LocalDate (sau un LocalTime pentru toLocalTime).

Exemple

Exemplul 1: Comenzi grupate pe zile

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

public class Main {
    public static void main(String[] args) {
        List<LocalDateTime> comenzi = List.of(
                LocalDateTime.of(2026, 10, 18, 9, 12),
                LocalDateTime.of(2026, 10, 18, 21, 47),
                LocalDateTime.of(2026, 10, 19, 0, 5),
                LocalDateTime.of(2026, 10, 19, 13, 30),
                LocalDateTime.of(2026, 10, 19, 18, 2));
        Map<LocalDate, Integer> peZile = new TreeMap<>();
        for (LocalDateTime c : comenzi) {
            peZile.merge(c.toLocalDate(), 1, Integer::sum);
        }
        peZile.forEach((zi, nr) -> System.out.println(zi + ": " + nr + " comenzi"));
    }
}

Rezultat

2026-10-18: 2 comenzi
2026-10-19: 3 comenzi

Exemplul 2: Data și ora separat

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        LocalDateTime examen = LocalDateTime.of(2026, 6, 15, 9, 0);
        LocalDate zi = examen.toLocalDate();
        LocalTime ora = examen.toLocalTime();
        System.out.println("Ziua: " + zi + ", ora: " + ora);
        System.out.println("Începutul zilei: " + zi.atStartOfDay());
        System.out.println("Este azi? " + zi.equals(LocalDate.of(2026, 6, 15)));
    }
}

Rezultat

Ziua: 2026-06-15, ora: 09:00
Începutul zilei: 2026-06-15T00:00
Este azi? true

Greșeli frecvente

  • Compari un LocalDateTime cu un LocalDate cu equals. Tipurile diferă și rezultatul este mereu false; extrage întâi data cu toLocalDate().

Comenzi înrudite

  • LocalDateTime: Data și ora împreună (2026-10-19T14:30), fără fus orar. LocalDateTime.now() dă momentul curent după ceasul local.
  • LocalDate: Clasa pentru o dată calendaristică fără oră și fără fus orar: an, lună, zi. Obiectele ei nu se pot modifica.
  • LocalTime: Ora din zi fără dată (14:30); se creează cu LocalTime.of(ora, minut) sau LocalTime.parse(„14:30”).
  • LocalDateTime.truncatedTo: Taie partea mai mică decât unitatea dată: truncatedTo(ChronoUnit.HOURS) face 14:37:52 → 14:00.