2015年10月18日 星期日

SimpleDateFormat parse wrong ??!!

過了這麼多年,第一次發現原來 SimpleDateFormat 是會表人的XD...
先說愛用是 jdk 1.6.0_33...

總之寫個範例就知道了Orz...

        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
       
        try  {
            System.out.println(sf.parse("20151010"));
            System.out.println(sf.parse("2015-10-10"));
            System.out.println(sf.parse("20-15-10-10"));
        }  catch(Exception e)  {
            e.printStackTrace();
        }

結果居然...
Sat Oct 10 00:00:00 CST 2015
Fri Oct 31 00:00:00 CST 2014
Sun Nov 05 00:00:00 CST 19

只有第一個是對的,但...居然都沒進 Exception...
如果前端輸入沒擋好,後端就要GG了~

是說解法也還還好~但真說都沒想到過,就是~
sf.setLenient(false);

但是為啥 jdk 不讓他預設就是 false就沒事了Orz...

沒有留言: