LocalDate.parse în Java

Transformă un text într-o dată: implicit formatul ISO 2026-10-19, sau orice format dat printr-un DateTimeFormatter.

Sintaxă
static LocalDate parse(CharSequence text)
static LocalDate parse(CharSequence text, DateTimeFormatter format)

Ce face LocalDate.parse

LocalDate.parse("2026-10-19") citește o dată scrisă în formatul ISO aaaa-ll-zz. Acesta este formatul folosit în JSON, baze de date și fișiere CSV.

Pentru formatul românesc 19.10.2026 dai un DateTimeFormatter: LocalDate.parse(text, DateTimeFormatter.ofPattern("dd.MM.yyyy")). Literele din șablon trebuie să se potrivească exact cu textul: dd cere două cifre pentru zi.

Dacă textul nu se potrivește sau data nu există, metoda aruncă DateTimeParseException (o subclasă a DateTimeException). Prinde excepția când citești date de la utilizator.

Parametri

Parametru Descriere
text Textul care conține data.
format Opțional. Un DateTimeFormatter care descrie formatul textului. Implicit: ISO_LOCAL_DATE.

Ce returnează

Data citită ca LocalDate. Aruncă DateTimeParseException dacă textul nu poate fi citit.

Exemple

Exemplul 1: Format ISO și format românesc

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

public class Main {
    public static void main(String[] args) {
        LocalDate iso = LocalDate.parse("2026-10-19");
        DateTimeFormatter romanesc = DateTimeFormatter.ofPattern("dd.MM.yyyy");
        LocalDate ro = LocalDate.parse("01.12.2026", romanesc);

        System.out.println("ISO: " + iso);
        System.out.println("Ziua Națională: " + ro + ", " + ro.getDayOfWeek());
    }
}

Rezultat

ISO: 2026-10-19
Ziua Națională: 2026-12-01, TUESDAY

Exemplul 2: Validarea datelor introduse

Textul este citit de la tastatură. Pentru fiecare rând greșit afișăm mesajul excepției.

import java.time.LocalDate;
import java.time.format.DateTimeParseException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            String text = in.nextLine().trim();
            try {
                LocalDate d = LocalDate.parse(text);
                System.out.println("OK: " + d);
            } catch (DateTimeParseException e) {
                System.out.println("Greșit: " + e.getMessage());
            }
        }
    }
}

Ce scrie utilizatorul (intrare)

2026-05-01
2026-13-01
1.05.2026

Rezultat

OK: 2026-05-01
Greșit: Text '2026-13-01' could not be parsed: Invalid value for MonthOfYear (valid values 1 - 12): 13
Greșit: Text '1.05.2026' could not be parsed at index 0

Greșeli frecvente

  • Citești "19.10.2026" cu LocalDate.parse(text) fără format. Varianta fără format acceptă doar ISO (2026-10-19).
  • Scrii în șablon mm (minute) în loc de MM (lună), sau YYYY (an bazat pe săptămână) în loc de yyyy.
  • Folosești "dd.MM.yyyy" pentru texte ca 1.5.2026. dd cere două cifre; pentru una sau două cifre folosește "d.M.yyyy".

Comenzi înrudite

  • LocalDate.of: Creează o dată fixă din an, lună și zi; aruncă DateTimeException dacă data nu există.
  • DateTimeFormatter: Descrie cum se scrie sau se citește o dată ca text; ofPattern(„dd.MM.yyyy”) creează un format din litere.
  • LocalDate.format: Transformă data într-un text după un șablon, de exemplu dd.MM.yyyy sau „luni, 19 octombrie 2026”.
  • 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).