一旦匹配模式,Java Simpledateformat似乎忽略了字符串

时间:2016-01-25 14:51:19

标签: java simpledateformat

SimpleDateFormat 似乎在找到匹配模式后忽略匹配字符串中的字符串。

例如:模式"yyyyMMddHHmm"匹配201601251531oi,我认为它不应该匹配。但是这个20160125153133失败了,这是完全正确的。 我尝试将setLenient作为true并且没有效果。我知道我们可以添加另一个数字位数检查(正则表达式),但有没有办法严格使这个模式仅使用 SimpleDateFormat

public static boolean isValidDateTimeFormat(String anyString,
                    String dateTimePattern) {
                 // here the pattern is 'yyyyMMddHHmm'
                SimpleDateFormat datePattern = new SimpleDateFormat(dateTimePattern); 
                datePattern.setLenient(false); // no difference
                try {
                    datePattern.parse(anyString);
                    return true;
                }
                catch (Exception pe){
                    return false;
                }
      }

1 个答案:

答案 0 :(得分:0)

不,正如@ControlAltDel在评论中所述,SimpleDateFormat不会以这种方式工作。您需要:

  1. 添加其他验证
  2. 确定额外的字符是" ok"并使用SimpleDateFormat解析的数据