在Java中使用Regex来检查YYYY MMM DD的模式

时间:2017-11-07 07:31:37

标签: java

我想知道代码中下面提到的日期模式的正则表达式。

        String line = "2017 Apr 04";
        if (line.matches("[T]|[T\\+\\d{0,2}]")) {
            System.out.println(line);
        }
        else
        {
            System.out.println("test");

        }

1 个答案:

答案 0 :(得分:2)

你最好使用现成的解决方案。那是SimpleDateFormat

以下是一个例子:

package datevalidator;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Main {

    public static void main(String[] args) {
        System.out.println(validateDate("2017 04 Apr"));
        System.out.println(validateDate("Apr 04 2017"));
        System.out.println(validateDate("2017 Apr 04"));
        System.out.println(validateDate("04 Apr 2017"));
    }

    private static boolean validateDate(String date) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy MMM dd");
        try {
            simpleDateFormat.parse(date);
        } catch (ParseException e) {
            return false;
        }
        return true;
    }
}

打印:

false
false
true
true

请注意,它也会在2017年4月4日验证。