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
LocalDateTimecu unLocalDatecuequals. Tipurile diferă și rezultatul este mereufalse; extrage întâi data cutoLocalDate().
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.