2013-01-21 111 views
0

我需要根據指定的格式檢查日期的有效性。谷歌搜索後,我發現一個:格式化日期不適用於Java

public static boolean isThisDateValid(String dateToValidate, String dateFromat){ 

     SimpleDateFormat sdf = new SimpleDateFormat(dateFromat); 
     sdf.setLenient(false); 
     ParsePosition position = new ParsePosition(0); 
     Date date = sdf.parse(dateToValidate,position); 
     return date != null && position.getIndex() == dateFromat.length(); 

} 

但它不是working..When我跑了這一點,它返回而不是指定false.Month true值是無效的,即13

System.out.println(isThisDateValid("20101331","yyyymmdd")); 

我錯過什麼?

回答

7

利用資本M幾個月:

System.out.println(isThisDateValid("20101331","yyyyMMdd")); 

這種無效的測試日期將返回false像預期的那樣你叫setLenient(false)

Date Format doc

+0

感謝問題解決了 – Anand

+0

沒問題,yw :) – Reimeus

1

您應該使用「年月日」而不是「年月日」

說明提供here

此外,爲什麼在你的問題中,月份值被分配到13?