本文介紹了SimpleDateFormat()在傳遞無效的日期格式時未給出IlLegalArgumentException的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我將%%#@-01-01
作為日期格式傳遞,但沒有得到異常。為什么?
SimpleDateFormat df = null;
df = new SimpleDateFormat("%%#@-01-01");
推薦答案
引用SimpleDateFormat:
[…]從‘A’到‘Z’以及從‘a(chǎn)’到‘z’的無引號字母被解釋為表示日期或時間字符串的組成部分的模式字母。文本可以用單引號(‘)引起來,以避免解釋。”‘’”表示單引號。不解釋所有其他字符;它們只是在格式化過程中復(fù)制到輸出字符串中,或者在分析過程中與輸入字符串匹配。
格式字符串%%#@-01-01
不包含字母,但不要求必須至少包含一個字母。
證明它是有效的(好吧,”有效”在這里是一個相對的概念,因為它幾乎毫無用處):
SimpleDateFormat fmt = new SimpleDateFormat("%%#@-01-01");
Date date = fmt.parse("%%#@-01-01");
System.out.println(date);
System.out.println(fmt.format(date));
try {
fmt.parse("9999-01-01");
} catch (Exception e) {
System.out.println(e);
}
輸出
Thu Jan 01 00:00:00 EST 1970
%%#@-01-01
java.text.ParseException: Unparseable date: "9999-01-01"
這篇關(guān)于SimpleDateFormat()在傳遞無效的日期格式時未給出IlLegalArgumentException的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,