2013-06-04 62 views
1

我想知道有沒有辦法檢查Java日期格式以確保用戶不輸入格式爲dd-MM-yyyy的日期,如56-13-2013。 目前,當我輸入13個月的日期時,它將繼續添加一年,然後顯示1個月。 例如16-16-2013會給我16-04-2014。Java驗證日期條目

感謝

+0

您也可以考慮使用一個JDateChooser。更清潔和更少的用戶錯誤傾向。 – LiverpoolFTW

回答

4

使用setLenient驗證輸入DateString

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy"); 
format.setLenient(false); 
Date date = format.parse(myDateString); 
+0

謝謝我沒有

1

你還沒說你怎麼分析目前的價值 - 我認爲它與SimpleDateFormat。只需撥打setLenient(false)即可驗證輸入。

例如:

import java.util.*; 
import java.text.*; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy"); 
     // Prints a value in 2014 
     System.out.println(format.parse("16-16-2013")); 
     format.setLenient(false); 
     // Throws an exception 
     System.out.println(format.parse("16-16-2013"));   
    } 
} 

如果你正在做的任何工作顯著量,我也強烈建議使用Joda Time,而不是內置類。