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
Localela șabloanele cu nume de luni (MMMM). Pe un server în engleză apare „October” în loc de „octombrie”. - Folosești
YYYYîn loc deyyyy.YYYYeste 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”.