我與模式yyyy-M-d"
構造SimpleDateFormat,並以下情形:java的SimpleDateFormat的行爲
String str = "02-03-04";
SimpleDateFormat f = new SimpleDateFormat("yyyy-M-d");
f.setLenient(false);
System.out.println(f.parse(str));
輸出是Sat Mar 04 00:00:00 EST 2
我的目標是隻能望塵莫及日期在像2004-02-格式03並忽略02-03-04。我認爲模式中的yyyy需要4位數的年份,但顯然情況並非如此。任何人都可以解釋爲什麼這不是拋出解析異常?我想它......
除此之外,正則表達式也應該工作(只是檢查它匹配,然後使用解析器)。 – lijie 2010-12-10 15:51:52
我簡化了這篇文章的問題。實際上,我有許多符合各種模式的日期格式。事後看來,也許正則表達式(或JODA時間)會更好......但這就是我現在所處的位置。 – 2010-12-10 15:53:26
如果它的東西是粘附的,那麼我真的不能提出比使用正則表達式首先驗證更好的方法(應該很容易爲每個日期模式編寫一個正則表達式,考慮到日期模式會捕獲格式中的其他錯誤? )。 – lijie 2010-12-10 16:10:36