最近在工作中需要用到对"yyyyMM"类的日期校验,比如"201501"就表示2015年1月,然后如果是"201513",“2015qew”等这些这是非法的输入。
之前使用了一直方式校验,使用SimpleDateFormat类的parse()方法,该方法会抛出ParseException异常,如果parse不符合format,就会抛出该异常。但后来发现了一个问题,就是这种方法对于"yyyy-MM","yyyy-MM-dd"类格式还可用,但到了"yyyyMM"类的就会出现问题,下面用代码说明:
public class Test {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM") ;
public static void main(String[] args) {
String testCase1 = "201501";
String testCase2 = "201513234";
String testCase3 = "2015qew";
try {
sdf.parse(testCase1) ;
System.out.println("'"+testCase1+"'没有发生异常");
sdf.parse(testCase2) ;
System.out.println("'"+testCase2+