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"cuLocalDate.parse(text)fără format. Varianta fără format acceptă doar ISO (2026-10-19). - Scrii în șablon
mm(minute) în loc deMM(lună), sauYYYY(an bazat pe săptămână) în loc deyyyy. - Folosești
"dd.MM.yyyy"pentru texte ca1.5.2026.ddcere 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).