DateTimeFormatter.ISO_LOCAL_DATE în Java

Formatul standard ISO pentru date, aaaa-ll-zz (2026-10-19); este formatul implicit al LocalDate.

Sintaxă
static final DateTimeFormatter ISO_LOCAL_DATE        // 2026-10-19
static final DateTimeFormatter ISO_LOCAL_DATE_TIME   // 2026-10-19T14:30:00
static final DateTimeFormatter BASIC_ISO_DATE        // 20261019

Ce face DateTimeFormatter.ISO_LOCAL_DATE

ISO_LOCAL_DATE este o constantă gata făcută pentru formatul internațional aaaa-ll-zz. Este formatul folosit de LocalDate.toString() și de LocalDate.parse(text) fără al doilea parametru, dar și de JSON, HTML (<input type="date">) și SQL.

Alte constante utile: ISO_LOCAL_DATE_TIME (2026-10-19T14:30:00), ISO_LOCAL_TIME, ISO_DATE_TIME (cu fus orar), ISO_INSTANT (…Z) și BASIC_ISO_DATE (20261019, fără cratime). Toate sunt independente de limbă.

Ce returnează

Un DateTimeFormatter predefinit.

Exemple

Exemplul 1: Constante ISO

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDateTime t = LocalDateTime.of(2026, 10, 19, 14, 30, 5);
        System.out.println(t.format(DateTimeFormatter.ISO_LOCAL_DATE));
        System.out.println(t.format(DateTimeFormatter.ISO_LOCAL_TIME));
        System.out.println(t.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
        System.out.println(t.format(DateTimeFormatter.BASIC_ISO_DATE));
    }
}

Rezultat

2026-10-19
14:30:05
2026-10-19T14:30:05
20261019

Exemplul 2: Conversie din format românesc în ISO

Datele dintr-un fișier românesc sunt rescrise în ISO, de exemplu pentru o bază de date.

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

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter ro = DateTimeFormatter.ofPattern("dd.MM.yyyy");
        String[] linii = {"Ana;14.03.2008", "Mihai;02.11.2008", "Elena;30.06.2007"};
        for (String linie : linii) {
            String[] p = linie.split(";");
            LocalDate d = LocalDate.parse(p[1], ro);
            System.out.println(p[0] + "," + d.format(DateTimeFormatter.ISO_LOCAL_DATE));
        }
        System.out.println(LocalDate.parse("2026-10-19", DateTimeFormatter.ISO_LOCAL_DATE).getDayOfWeek());
    }
}

Rezultat

Ana,2008-03-14
Mihai,2008-11-02
Elena,2007-06-30
MONDAY

Greșeli frecvente

  • Scrii propriul șablon "yyyy-MM-dd" în loc de constanta ISO. Merge, dar constanta este mai clară și acceptă și ani cu mai mult de 4 cifre.

Comenzi înrudite

  • DateTimeFormatter: Descrie cum se scrie sau se citește o dată ca text; ofPattern(„dd.MM.yyyy”) creează un format din litere.
  • LocalDate.parse: Transformă un text într-o dată: implicit formatul ISO 2026-10-19, sau orice format dat printr-un DateTimeFormatter.
  • LocalDate.format: Transformă data într-un text după un șablon, de exemplu dd.MM.yyyy sau „luni, 19 octombrie 2026”.
  • Instant: Un moment exact pe axa timpului, în UTC, măsurat în secunde și nanosecunde de la 1 ianuarie 1970.