我的 Spring Boot 應用程式中有一個自定義驗證器,該驗證器被呼叫,因為我設定了一個斷點并且它停止了。
問題是日期驗證器不起作用。
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("MMYYYY");
@Override
public boolean isValid(String date, ConstraintValidatorContext ctx) {
// TODO Auto-generated method stub
if(date == null) {
return true;
}
try {
DATE_FORMAT.parse(date);
} catch (Exception e) {
return false;
}
return true;
}
我正在使用無效的日期 785454 對其進行測驗,但它并沒有出現例外。
我的錯誤在哪里?
uj5u.com熱心網友回復:
- 修復模式:
SimpleDateFormat("MMyyyy") - 它加起來幾個月:
new java.text.SimpleDateFormat("MMyyyy").parse("122000"); = Fri Dec 01 00:00:00 CET 2000
new java.text.SimpleDateFormat("MMyyyy").parse("132000"); = Mon Jan 01 00:00:00 CET 2001
new java.text.SimpleDateFormat("MMyyyy").parse("785454"); = Fri Jun 01 00:00:00 CEST 5460
new java.text.SimpleDateFormat("MMyyyy").parse("015454"); = Sun Jan 01 00:00:00 CET 5454
- 您必須期待的唯一例外是
ParseException - if the beginning of the specified string cannot be parsed.(請參閱檔案)
正確的解決方案(來自評論):
setLenient檔案和除外
uj5u.com熱心網友回復:
從檔案 Throws: NullPointerException - if text or pos is null.
看起來 parse 方法僅在給定值為 null 時才會引發例外。
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/408239.html
標籤:
