如何验证输入是否与特定时间戳格式匹配?

时间:2012-08-17 06:53:45

标签: java regex validation formatting timestamp

我需要检查输入是否与时间戳格式 yyyy-MM-dd'T'HH:mm:ss.SSS 匹配。

  

EG。 2012-08-16T11:07:10.793

我该怎么做?

2 个答案:

答案 0 :(得分:5)

try {
    formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
    date = (Date) formatter.parse("2012-08-16T11:07:10.793");
} catch(ParseException e) {
    // It does not match your input
}

或者,一如既往地使用正则表达式......

编辑: 考虑到妈妈的拼写错误。

答案 1 :(得分:1)

正则表达式:

^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])(\D?([01]\d|2[0-3])\D?([0-5]\d)\D?([0-5]\d)?\D?(\d{3})?)?$

对于迟到的编辑感到抱歉。 如果你只想检查日期的模式是否匹配,你可以像这样使用正则表达式:

    String date = "2012-08-16T11:07:10.793";
    String regex = "^(\\d{4})\\D?(0[1-9]|1[0-2])\\D?([12]\\d|0[1-9]|3[01])(\\D?([01]\\d|2[0-3])\\D?([0-5]\\d)\\D?([0-5]\\d)?\\D?(\\d{3})?)?$";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(date);

    if (m.matches()) {
        System.out.println("Yes it matches");
    } else {
        System.out.println("No match");
    }