24時間形式の正規表現パターンでの時間

([01]?[0-9]|2[0-3]):[0-5][0-9]....

説明

( #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

24時間制の形式は0-23または00-23から始まり、セミコロン(:)および00-59が続きます。

===  Javaの正規表現の例

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();

      }
}

=== 一致する時刻形式:

{空} 1。 「01:00」、「02:00」、「13:00」、2.「1:00」、「2:00」、「13:01」、3.「23:59」、「15: 00 "4." 00:00 "、" 0:00 "

=== 時刻形式が一致しません:

{空} 1。 "24:00"  - 時間が範囲外です[0-23]2. "12:60"  - 分が範囲外です[00-59]3. "0:0"  - フォーマットが無効で、少なくとも2数字の4桁の「13:1」 - 分のフォーマットが無効で、少なくとも2桁の数字5.「101:00」 - 時間が範囲外です。[0-23]

=== 単体テスト -  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);
    }
}

=== ユニットテスト - 結果

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

=== リファレンス

http://en.wikipedia.org/wiki/24-hour__clock

正規表現の詳細を知りたいですか?これと古典的な本を強くお勧めします -  "正規表現のマスター"

+

+

link://tag/regex/[regex]link://タグ/timestamp/[timestamp]