LocalDate.format în Java

Transformă data într-un text după un șablon, de exemplu dd.MM.yyyy sau „luni, 19 octombrie 2026”.

Sintaxă
String format(DateTimeFormatter format)

Ce face LocalDate.format

data.format(formatter) scrie data ca text în formatul descris de un DateTimeFormatter. Pentru formatul românesc obișnuit folosești DateTimeFormatter.ofPattern("dd.MM.yyyy").

Numele zilelor și ale lunilor depind de limbă (Locale). Cu ofPattern("EEEE, d MMMM yyyy", Locale.of("ro")) obții „luni, 19 octombrie 2026”. Fără Locale, Java folosește limba implicită a sistemului, deci rezultatul poate diferi de la un calculator la altul.

Metoda face același lucru ca formatter.format(data). Dacă șablonul cere ore sau minute (HH:mm), LocalDate nu le are și apare UnsupportedTemporalTypeException.

Parametri

Parametru Descriere
format Un DateTimeFormatter, creat de obicei cu ofPattern, sau o constantă ca ISO_LOCAL_DATE.

Ce returnează

Textul datei formatate (String).

Exemple

Exemplul 1: Formate românești

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

public class Main {
    public static void main(String[] args) {
        Locale ro = Locale.of("ro");
        LocalDate d = LocalDate.of(2026, 10, 19);
        System.out.println(d.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")));
        System.out.println(d.format(DateTimeFormatter.ofPattern("d MMMM yyyy", ro)));
        System.out.println(d.format(DateTimeFormatter.ofPattern("EEEE, d MMMM yyyy", ro)));
        System.out.println(d.format(DateTimeFormatter.ofPattern("EEE d MMM", ro)));
    }
}

Rezultat

19.10.2026
19 octombrie 2026
luni, 19 octombrie 2026
lun. 19 oct.

Exemplul 2: Un antet de factură

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

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter f = DateTimeFormatter.ofPattern("dd.MM.yyyy");
        LocalDate emitere = LocalDate.of(2026, 10, 1);
        LocalDate scadenta = emitere.plusDays(30);
        System.out.println("Factura nr. 105 / " + emitere.format(f));
        System.out.println("Client: Popescu Ion, Iași");
        System.out.println("Scadența: " + scadenta.format(f));
    }
}

Rezultat

Factura nr. 105 / 01.10.2026
Client: Popescu Ion, Iași
Scadența: 31.10.2026

Exemplul 3: Șablon cu oră pe o dată fără oră

LocalDate nu are oră, deci litera HH nu are de unde lua valoarea.

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

public class Main {
    public static void main(String[] args) {
        try {
            System.out.println(LocalDate.of(2026, 10, 19).format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm")));
        } catch (UnsupportedTemporalTypeException e) {
            System.out.println("Eroare: " + e.getMessage());
        }
    }
}

Rezultat

Eroare: Unsupported field: HourOfDay

Greșeli frecvente

  • Nu dai Locale la șabloanele cu nume de luni (MMMM). Pe un server în engleză apare „October” în loc de „octombrie”.
  • Folosești YYYY în loc de yyyy. YYYY este anul săptămânii și dă anul greșit în ultimele zile din decembrie.

Comenzi înrudite

  • DateTimeFormatter: Descrie cum se scrie sau se citește o dată ca text; ofPattern(„dd.MM.yyyy”) creează un format din litere.
  • DateTimeFormatter.format: Scrie o dată, o oră sau un moment ca text, după formatul acestui DateTimeFormatter.
  • LocalDate.parse: Transformă un text într-o dată: implicit formatul ISO 2026-10-19, sau orice format dat printr-un DateTimeFormatter.
  • LocalDateTime.format: Scrie data și ora ca text după un șablon, de exemplu „19.10.2026 14:30”.