我想知道代码中下面提到的日期模式的正则表达式。
String line = "2017 Apr 04";
if (line.matches("[T]|[T\\+\\d{0,2}]")) {
System.out.println(line);
}
else
{
System.out.println("test");
}
答案 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日验证。