8/7/2020 Java date validation using RegEx - HowToDoInJava
HowToDoInJava Python Java Spring Boot
Java Regex Home / Java / Java Regular Expressions / Java date validation using Search Tutorials
Tutorial RegEx
Type and Press ENTE
Java Regex –
Java date validation using
RegEx
Introduction
Java Regex :
Alphanumeric ADVERTISEMENTS
Java Regex : Credit In this Java date validation using regex, we will learn to
Card Numbers validate simple date formats such as mm/dd/yy, mm/dd/yyyy,
Java Regex : Canadian dd/mm/yy and dd/mm/yyyy. Here we want to use a regex that
Postcodes
simply checks whether the input is a valid date without trying
Java Regex : Currency
to eliminate things such as February 31st.
Symbol
Java Regex : Date We might think that something as conceptually trivial as a date
Format
validation should be an easy job for a regular expression. But it
Java Regex : Email
isn’t. The main issue is that regular expressions don’t deal
Address
directly with numbers.
Java Regex : Password
Java Regex : Greek ADVERTISEMENTS
ADVERTISEMENTS
Characters
Java Regex : ISBNs
Java Regex : Min/Max
Length
Java Regex : No. of
Lines
Java Regex : No. of
Words
Java Regex : SSN
Java Regex : UK Postal
Codes
Java Regex : US Postal We can’t tell a regular expression to “match a number between
ADVERTISEMENTS
Codes 1 and 31”. Rather regular expressions work character by
Java Regex : Trademark character.
Symbol
Java Regex : Intl Phone We use '3[01]|[12][0-9]|0?[1-9]' to match 3 followed by
Numbers 0 or 1, or to match 1 or 2 followed by any digit, or to match an
North American Phone optional 0 followed by 1 to 9. Because of this, you have to
Numbers
choose how simple or how accurate you want your regular
expression to be.
Java Tutorial
Java Introduction
1. Java date validation regex – allow
Java Keywords
Java Flow Control
leading zeros to be omitted ADVERTISEMENTS
Java OOP
Java Inner Class Regex : ^[0-3]?[0-9]/[0-3]?[0-9]/(?:[0-9]{2})?[0-9]{2}$
Java String
https://howtodoinjava.com/java/regex/java-regex-date-format-validation/ 1/8
8/7/2020 Java date validation using RegEx - HowToDoInJava
Java Enum
List dates = new ArrayList();
Java Collections
dates.add("1/1/11");
Java ArrayList
dates.add("01/01/11");
Java HashMap dates.add("01/01/2011");
Java Array dates.add("01/1/2011");
Java Sort dates.add("1/11/2011");
Java Clone dates.add("1/11/11");
Java Date Time
dates.add("11/1/11");
Java Concurrency
String regex = "^[0-3]?[0-9]/[0-3]?[0-9]/(?:[0-9]{2})?[
Java Generics
Java Serialization Pattern pattern = Pattern.compile(regex);
Java Input Output
Java New I/O for(String date : dates)
Java Exceptions {
Java Annotations
Matcher matcher = pattern.matcher(date);
System.out.println(date +" : "+ matcher.matches());
Java Reflection
}
Java Garbage collection
Java JDBC
Java Security
Program output.
Java Regex
Java Servlets ADVERTISEMENTS
Java XML
Java Puzzles ADVERTISEMENTS
Java Examples
Java Libraries
Java Resources
Java 14
Java 12
Java 11
Java 10
Java 9
Java 8
Java 7 Console
1/1/11 : true
01/01/11 : true
01/01/2011 : true
01/1/2011 : true
1/11/2011 : true
1/11/11 : true
11/1/11 : true
2. Java date validation regex – require
leading zeros
Regex : ^[0-3][0-9]/[0-3][0-9]/(?:[0-9][0-9])?[0-9][0-9]$
https://howtodoinjava.com/java/regex/java-regex-date-format-validation/ 2/8
8/7/2020 Java date validation using RegEx - HowToDoInJava
List dates = new ArrayList();
//With leading zeros
dates.add("01/01/11");
dates.add("01/01/2011");
//Missing leading zeros
dates.add("1/1/11");
dates.add("01/1/2011");
dates.add("1/11/2011");
dates.add("1/11/11");
dates.add("11/1/11");
String regex = "^[0-3][0-9]/[0-3][0-9]/(?:[0-9][0-9])?[
Pattern pattern = Pattern.compile(regex);
for(String date : dates)
{
Matcher matcher = pattern.matcher(date);
System.out.println(date +" : "+ matcher.matches());
}
Program output.
Console
01/01/11 : true
01/01/2011 : true
1/1/11 : false
01/1/2011 : false
1/11/2011 : false
1/11/11 : false
11/1/11 : false
3. Java date validation regex – match
“mm/dd/yyyy” with required leading
zeros
Regex : ^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
Java program to validate date format mm/dd/yyyy .
List dates = new ArrayList();
//With leading zeros
dates.add("01/01/11");
https://howtodoinjava.com/java/regex/java-regex-date-format-validation/ 3/8
8/7/2020 Java date validation using RegEx - HowToDoInJava
dates.add("01/01/2011");
//Missing leading zeros
dates.add("1/1/11");
dates.add("01/1/2011");
String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9
Pattern pattern = Pattern.compile(regex);
for(String date : dates)
{
Matcher matcher = pattern.matcher(date);
System.out.println(date +" : "+ matcher.matches());
}
Program output.
Console
01/01/11 : false
01/01/2011 : true
1/1/11 : false
01/1/2011 : false
4. Java date validation regex – match
“dd/mm/yyyy” with required leading
zeros
The regular expression for validating date format dd/mm/yyyy .
Regex : ^(3[01]|[12][0-9]|0[1-9])/(1[0-2]|0[1-9])/[0-9]{4}$
List dates = new ArrayList();
//With leading zeros
dates.add("07/13/2011");
dates.add("13/07/2011");
//Missing leading zeros
dates.add("1/1/11");
dates.add("01/1/2011");
String regex = "^(3[01]|[12][0-9]|0[1-9])/(1[0-2]|0[1-9
Pattern pattern = Pattern.compile(regex);
for(String date : dates)
{
Matcher matcher = pattern.matcher(date);
https://howtodoinjava.com/java/regex/java-regex-date-format-validation/ 4/8
8/7/2020 Java date validation using RegEx - HowToDoInJava
System.out.println(date +" : "+ matcher.matches());
}
Program output.
Console
07/13/2011 : false
13/07/2011 : true
1/1/11 : false
01/1/2011 : false
Feel free to use and edit above regular expressions for date
validation to suit your needs.
Happy Learning !!
ADVERTISEMENTS
Was this article helpful?
YES NO
ADVERTISEMENTS
About Lokesh Gupta
A family guy with fun loving nature. Love computers,
programming and solving everyday problems. Find me
on Facebook and Twitter.
https://howtodoinjava.com/java/regex/java-regex-date-format-validation/ 5/8
8/7/2020 Java date validation using RegEx - HowToDoInJava
Feedback, Discussion and Comments
Amit Kushawaha
July 30, 2019
Does not validate the leap year like 30/02/2019 in this
case it should return false but returns true.
Reply
Lokesh Gupta
July 31, 2019
Hi Amit, It is just validating the date format against
a predefined pattern. To check if it is actual date in
calendar, parse it to LocalDate object in strict mode.
DateTimeFormatter formatter = DateTimeForma
try
{
LocalDate.parse("2016-02-30",
formatter.withResolverStyle(Res
}
catch (DateTimeException ex)
{
System.out.println(ex.getMessage());
}
Reply
mofis khan
June 6, 2016
how to validate the date to present date
Reply
Priyanka
March 30, 2016
https://howtodoinjava.com/java/regex/java-regex-date-format-validation/ 6/8