2016-05-05 1 views
4
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; 
} 

У меня есть этот метод, чтобы проверить, является ли Облы в правильном формате я тестировал противSimpledataformat не распознает допустимую строки

2015–01-01 07:01:14 

и он говорит, не допустимое время. Я смущен, поскольку они находятся в одном формате.

ответ

7

Ваш пример строки имеет неправильный символ для первого дефиса. Это EN-DASH, aka unicode code point U + 2013. Замена его нормальным дефис (U + 002D) будет работать правильно.