2013-03-24 50 views
2

我只是無法找到任何方式來檢查提供的模式是否有效或驗證任何日期之前。如何驗證Java中的任何日期格式模式本身

例如

String datePattern = "blablabla"; 

我們怎樣才能驗證其是否有效的模式來創建對象的SimpleDateFormat或任何其他日期格式。

謝謝。

回答

3

JavaDoc

IllegalArgumentException - if the given pattern is invalid 

換句話說,捕獲異常。如果抓住了,這是一個無效的模式:

try { 
    new SimpleDateFormat("invalid"); 
} catch (IllegalArgumentException e) { 
    // invalid pattern 
} 
+0

不適Java 6中 – 2013-03-24 08:38:00

+0

@IswantoSan:以什麼方式? (該評論太模糊,無助於幫助。) – 2013-03-24 08:38:17

+0

沒有異常發生 – 2013-03-24 08:38:51

-1

嘗試了這一點:

String datePattern = "not a date object"; 
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
    try { 
     System.out.println(format.parse(datePattern)); 
    } catch (ParseException exception) { 
     // Not in proper format 
     System.out.println("Exception occured. String not in a date format."); 
    } 
+1

我不認爲這實際上是在做OP尋找什麼...... – 2013-03-24 08:39:02

+0

我認爲,如果模式是適當的日期格式,而不是由我們自己決定,我們必須讓現有的解析API方法決定。如果我們自己寫,我們可能傾向於失去任何有效的方案。 – 2013-03-24 08:41:09

+0

不,因爲SimpleDateFormat本身執行模式驗證。 'parse'方法只驗證傳入的文本被解析,而不是模式。 – 2013-03-24 08:44:25