Syntax
DateTimeFormatter.ofPattern("dd/MM/uuuu").withResolverStyle(ResolverStyle.STRICT)Examples
Strict Date Parsing
Save as Main.java and run with a Java 17+ JDK: java Main.java.
import java.time.LocalDate;
import java.time.format.*;
public class Main {
public static void main(String[] args) throws Exception {
DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/uuuu")
.withResolverStyle(ResolverStyle.STRICT);
System.out.println(LocalDate.parse("29/02/2024", format));
try {
LocalDate.parse("29/02/2023", format);
} catch (DateTimeParseException ex) {
System.out.println("invalid date");
}
}
}- Expected output: 2024-02-29 invalid date
- uuuu represents the proleptic year needed here without a separate era. Strict parsing rejects February 29 in a non-leap year.
Best practices
- Specify Locale for textual month/day names.
- Use ISO formatters for machine interchange when possible.
Runtime & versions
Java Virtual Machine. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
Java Language Specification