本文介紹了Java數(shù)據(jù)格式并不是在所有情況下都有效的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習吧!
問題描述
我在下面的代碼中犯了什么錯誤?如果我們沒有傳遞像yyyy-MM-dd這樣日期格式,它應(yīng)該拋出分析錯誤,它應(yīng)該返回FALSE,但在一個方案不起作用
2020-08-19–>;工作正常,返回正確
2020-19-08–>;工作正常,返回FALSE
20-08-19–>;這應(yīng)該返回FALSE。它不工作并返回True
我不明白為什么第三種方案會失敗。
澄清:我在問:如果我們傳遞輸入:20-19-08
,它應(yīng)該返回FALSE,對嗎?但這一切都是真的。我的問題是,如果我通過了20,而不是2020,它應(yīng)該返回FALSE。
代碼
public static boolean validateDateFormat(String strDate) {
SimpleDateFormat sdfrmt = new SimpleDateFormat("yyyy-MM-dd");
sdfrmt.setLenient(false);
try {
sdfrmt.parse(strDate);
}
catch (ParseException e) {
return false;
}
return true;
}
推薦答案
20-19-08不遵循格式,因為年份未指定為四位數(shù)字(盡管您使用的格式化程序會將20和2020都識別為有效年份,但不是同一年),并且根據(jù)格式字符串,您的月份值將顯示為19,這是無效的。
這篇關(guān)于Java數(shù)據(jù)格式并不是在所有情況下都有效的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,