Time in 24-Hour Format Regular Expression Pattern
([01]?[0-9]|2[0-3]):[0-5][0-9]
Description
( #start of group #1
[01]?[0-9] # start with 0-9,1-9,00-09,10-19
| # or
2[0-3] # start with 20-23
) #end of group #1
: # follow by a semi colon (:)
[0-5][0-9] # follw by 0..5 and 0..9, which means 00 to 59
The 24-hour clock format is start from 0-23 or 00-23 then a semi colon (:) and follow by 00-59.
Java Regular Expression Example
package com.mkyong.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Time24HoursValidator{
private Pattern pattern;
private Matcher matcher;
private static final String TIME24HOURS_PATTERN =
"([01]?[0-9]|2[0-3]):[0-5][0-9]";
public Time24HoursValidator(){
pattern = Pattern.compile(TIME24HOURS_PATTERN);
}
/**
* Validate time in 24 hours format with regular expression
* @param time time address for validation
* @return true valid time fromat, false invalid time format
*/
public boolean validate(final String time){
matcher = pattern.matcher(time);
return matcher.matches();
}
}
Time format that match:
1. “01:00”, “02:00”, “13:00”,
2. “1:00”, “2:00”, “13:01”,
3. “23:59″,”15:00”
4. “00:00″,”0:00”
Time format doesn’t match:
1. “24:00” – hour is out of range [0-23]
2. “12:60” – minute is out of range [00-59]
3. “0:0” – invalid format for minute, at least 2 digits
4. “13:1” – invalid format for minute, at least 2 digits
5. “101:00” – hour is out of range [0-23]
Unit Test – Time24HoursValidatorTest
package com.mkyong.regex;
import org.testng.Assert;
import org.testng.annotations.*;
/**
* Time 24 hours format validator Testing
* @author mkyong
*
*/
public class Time24HoursValidatorTest {
private Time24HoursValidator time24HoursValidator;
@BeforeClass
public void initData(){
time24HoursValidator = new Time24HoursValidator();
}
@DataProvider
public Object[][] ValidTime24HoursProvider() {
return new Object[][]{
new Object[] {"01:00"}, new Object[] {"02:00"},
new Object[] {"13:00"}, new Object[] {"1:00"},
new Object[] {"2:00"},new Object[] {"13:01"},
new Object[] {"23:59"}, new Object[] {"15:00"},
new Object[] {"00:00"}, new Object[] {"0:00"}
};
}
@DataProvider
public Object[][] InvalidTime24HoursProvider() {
return new Object[][]{
new Object[] {"24:00"},new Object[] {"12:60"},
new Object[] {"0:0"},new Object[] {"13:1"},
new Object[] {"101:00"}
};
}
@Test(dataProvider = "ValidTime24HoursProvider")
public void ValidTime24HoursTest(String time) {
boolean valid = time24HoursValidator.validate(time);
System.out.println("Time24Hours is valid : " + time + " , " + valid);
Assert.assertEquals(true, valid);
}
@Test(dataProvider = "InvalidTime24HoursProvider",
dependsOnMethods="ValidTime24HoursTest")
public void InValidTime24HoursTest(String time) {
boolean valid = time24HoursValidator.validate(time);
System.out.println("Time24Hours is valid : " + time + " , " + valid);
Assert.assertEquals(false, valid);
}
}
Unit Test – Result
Time24Hours is valid : 01:00 , true
Time24Hours is valid : 02:00 , true
Time24Hours is valid : 13:00 , true
Time24Hours is valid : 1:00 , true
Time24Hours is valid : 2:00 , true
Time24Hours is valid : 13:01 , true
Time24Hours is valid : 23:59 , true
Time24Hours is valid : 15:00 , true
Time24Hours is valid : 00:00 , true
Time24Hours is valid : 0:00 , true
Time24Hours is valid : 24:00 , false
Time24Hours is valid : 12:60 , false
Time24Hours is valid : 0:0 , false
Time24Hours is valid : 13:1 , false
Time24Hours is valid : 101:00 , false
PASSED: ValidTime24HoursTest("01:00")
PASSED: ValidTime24HoursTest("02:00")
PASSED: ValidTime24HoursTest("13:00")
PASSED: ValidTime24HoursTest("1:00")
PASSED: ValidTime24HoursTest("2:00")
PASSED: ValidTime24HoursTest("13:01")
PASSED: ValidTime24HoursTest("23:59")
PASSED: ValidTime24HoursTest("15:00")
PASSED: ValidTime24HoursTest("00:00")
PASSED: ValidTime24HoursTest("0:00")
PASSED: InValidTime24HoursTest("24:00")
PASSED: InValidTime24HoursTest("12:60")
PASSED: InValidTime24HoursTest("0:0")
PASSED: InValidTime24HoursTest("13:1")
PASSED: InValidTime24HoursTest("101:00")
===============================================
com.mkyong.regex.Time24HoursValidatorTest
Tests run: 15, Failures: 0, Skips: 0
===============================================
===============================================
mkyong
Total tests run: 15, Failures: 0, Skips: 0
===============================================
Reference
http://en.wikipedia.org/wiki/24-hour_clock
Want to learn more about regular expression? Highly recommend the this and classic book – “Mastering Regular Expression”
Pingback: small gun safes()
Pingback: Christmas fireplace Video()
Pingback: online casinos betting()
Pingback: reference()
Pingback: Learn More()
Pingback: additional info()
Pingback: Learn More Here()
Pingback: bingo voyance()
Pingback: Piano Lessons()
Pingback: forskolin free trial offer()
Pingback: Key Finders()
Pingback: Key Finders()
Pingback: free vape pen starter kits()
Pingback: facebook()
Pingback: LiveSuitePro Review()
Pingback: car multimedia()
Pingback: https://www.facebook.com/Wishloop-Review-1110948149024200/()
Pingback: buy vitamins online()
Pingback: http://liposomalna.pl/altrientc-livonlabs-liposomalna-wit-c-1000-mg/()
Pingback: https://www.youtube.com/watch?v=3_T7Y5GC_LA()
Pingback: ImJetset()
Pingback: http://yourohiodentists.com()
Pingback: subwaysurfersgame()
Pingback: youtube()
Pingback: ���ֳ�()