2011-05-17 61 views

回答

12

使用DateFormat.setLenient(false)告訴DateFormat/SimpleDateFormat您希望它是嚴格的。

+0

Thnkx快速回復 – 2011-05-17 10:02:56

+0

做了修改之後,你提到它在日期中給出解析錯誤:「13-10-2007 16:52:12.014789」,pattern:「dd-MM-yyyy HH:mm:ss。 SSSSSS」。 – 2011-05-17 11:55:45

+0

我找到了答案。 Java在ms字段中支持3位數字表示dd-MM-yyyy HH:mm:ss.SSS是可支持的 – 2011-05-17 12:36:29

2

設置寬鬆將在大多數情況下工作,但如果你想查詢的確切字符串模式那麼這可能幫助,

String s = "03/6/1988"; 
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
    try { 
     sdf.setLenient(false); 
     Date d = sdf.parse(s); 
     String s1 = sdf.format(d); 
     if (s1.equals(s)) 
      System.out.println("Valid"); 
     else 
      System.out.println("Invalid"); 
    } catch (ParseException ex) { 
     // TODO Auto-generated catch block 
     ex.printStackTrace(); 
    } 

如果你給的輸入爲「1988年3月6日」,那麼你會得到有效的結果。