Simpledateformat 无法识别有效字符串

Simpledataformat not recognizing valid string

  public static boolean checkTimeFormat(String str){

    try {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.parse(str);
        return true;
    } catch (ParseException ex) {
        System.out.println("not a valid time:"+str);
        //ex.printStackTrace();
    }

return false;
}

我有这个方法来检查str格式是否正确 我针对

进行了测试
 2015–01-01 07:01:14

它说不是有效时间。我很困惑,因为它们的格式相同。

您的示例字符串的第一个连字符有误。它是一个 EN-DASH,又名 unicode 代码点 U+2013。将其替换为普通连字符 (U+002D) 即可正常工作。