LocalDateTime în Java

Data și ora împreună (2026-10-19T14:30), fără fus orar. LocalDateTime.now() dă momentul curent după ceasul local.

Sintaxă
import java.time.LocalDateTime;

LocalDateTime acum = LocalDateTime.now();
LocalDateTime t = LocalDateTime.of(2026, 10, 19, 14, 30);

Ce face LocalDateTime

LocalDateTime combină un LocalDate cu un LocalTime: an, lună, zi, oră, minut, secundă și nanosecunde. Este potrivită pentru o programare la medic, ora unui tren dintr-un orar sau momentul unei comenzi, atunci când fusul orar este subînțeles.

Ca toate clasele din java.time, este imutabilă. toString() afișează formatul ISO cu litera T între dată și oră: 2026-10-19T14:30. Secundele apar doar dacă nu sunt zero.

LocalDateTime.now() citește ceasul sistemului în fusul orar implicit. Pentru că nu are fus orar, un LocalDateTime nu indică un moment unic pe glob: „14:30” la București și la Londra sunt momente diferite. Pentru momente exacte folosește ZonedDateTime sau Instant.

Ce returnează

Un obiect LocalDateTime; now() returnează data și ora curente.

Exemple

Exemplul 1: Momentul curent

Rezultatul depinde de momentul rulării; nanosecundele apar și ele.

import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDateTime acum = LocalDateTime.now();
        System.out.println("Acum: " + acum);
        System.out.println("Ora: " + acum.getHour() + ", minutul: " + acum.getMinute());
    }
}

Rezultat posibil (diferă la fiecare rulare)

Acum: 2026-10-19T14:31:07.482915
Ora: 14, minutul: 31

Exemplul 2: Programări la cabinet

import java.time.LocalDateTime;
import java.util.List;

public class Main {
    record Programare(String pacient, LocalDateTime cand) {}

    public static void main(String[] args) {
        List<Programare> lista = List.of(
                new Programare("Ana Ionescu", LocalDateTime.of(2026, 10, 20, 9, 30)),
                new Programare("Mihai Pop", LocalDateTime.of(2026, 10, 20, 11, 0)),
                new Programare("Elena Rusu", LocalDateTime.of(2026, 10, 21, 8, 15, 30)));
        for (Programare p : lista) {
            System.out.println(p.cand() + "  " + p.pacient() + "  (ziua " + p.cand().getDayOfWeek() + ")");
        }
    }
}

Rezultat

2026-10-20T09:30  Ana Ionescu  (ziua TUESDAY)
2026-10-20T11:00  Mihai Pop  (ziua TUESDAY)
2026-10-21T08:15:30  Elena Rusu  (ziua WEDNESDAY)

Exemplul 3: Dată + oră = LocalDateTime

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

public class Main {
    public static void main(String[] args) {
        LocalDate zi = LocalDate.of(2026, 12, 31);
        LocalTime ora = LocalTime.of(23, 59, 59);
        LocalDateTime revelion = zi.atTime(ora);
        LocalDateTime altfel = LocalDateTime.of(zi, ora);
        System.out.println(revelion);
        System.out.println("Același moment? " + revelion.equals(altfel));
        System.out.println("O secundă mai târziu: " + revelion.plusSeconds(1));
    }
}

Rezultat

2026-12-31T23:59:59
Același moment? true
O secundă mai târziu: 2027-01-01T00:00

Greșeli frecvente

  • Salvezi momente din aplicații folosite în mai multe țări ca LocalDateTime. Fără fus orar nu mai știi când s-a întâmplat exact; folosește Instant sau ZonedDateTime.
  • Compari LocalDateTime.now() cu o valoare fixă într-un test. Testul nu dă mereu același rezultat; folosește now(Clock) cu un ceas fix.

Comenzi înrudite

  • LocalDateTime.of: of creează o dată cu oră din valori; parse citește una dintr-un text (ISO 2026-10-19T14:30 sau un format dat).
  • LocalDateTime.plusHours: Returnează o dată cu oră nouă, mutată cu un număr de ore; trecerea peste miezul nopții schimbă și ziua.
  • LocalDateTime.format: Scrie data și ora ca text după un șablon, de exemplu „19.10.2026 14:30”.
  • 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”).
  • ZonedDateTime: Data și ora împreună cu fusul orar (Europe/Bucharest); indică un moment exact și știe de ora de vară.