我想知道有沒有辦法檢查Java日期格式以確保用戶不輸入格式爲dd-MM-yyyy的日期,如56-13-2013。 目前,當我輸入13個月的日期時,它將繼續添加一年,然後顯示1個月。 例如16-16-2013會給我16-04-2014。Java驗證日期條目
感謝
我想知道有沒有辦法檢查Java日期格式以確保用戶不輸入格式爲dd-MM-yyyy的日期,如56-13-2013。 目前,當我輸入13個月的日期時,它將繼續添加一年,然後顯示1個月。 例如16-16-2013會給我16-04-2014。Java驗證日期條目
感謝
使用setLenient
驗證輸入Date
String
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
format.setLenient(false);
Date date = format.parse(myDateString);
謝謝我沒有
你還沒說你怎麼分析目前的價值 - 我認爲它與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,而不是內置類。
您也可以考慮使用一個JDateChooser。更清潔和更少的用戶錯誤傾向。 – LiverpoolFTW