SimpleDateFormat進(jìn)行月分轉(zhuǎn)換(MMM)異常的問題
Posted on 2011-11-15 10:10 ZhouFeng 閱讀(2333) 評論(0) 編輯 收藏 所屬分類: 原創(chuàng) 、JAVA在做一個任務(wù)時,需要對日期進(jìn)行轉(zhuǎn)換,源始字串格式為:Tue Nov 15 09:17:35 CST 2011
希望轉(zhuǎn)換成日期類型,寫了如下代碼
希望轉(zhuǎn)換成日期類型,寫了如下代碼
Date pubd = (new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy")).parse("Tue Nov 15 09:17:35 CST 2011");
沒想到出現(xiàn)了異常提示java.text.ParseException: Unparseable date: "Tue Nov 15 09:17:35 CST 2011"
我逐步排查,最后發(fā)現(xiàn)是MMM的問題,因?yàn)樽詈髮⒋a精簡到只剩MMM時還是出現(xiàn)這樣的問題Date pubd = (new SimpleDateFormat("MMM")).parse("Nov");
在網(wǎng)上查了些文檔,也多半是講解怎樣用SimpleDateFormat進(jìn)行日期轉(zhuǎn)換的,好像遇到這樣異常的還不多,最后看到JAVA文檔里還有一個構(gòu)造函數(shù)SimpleDateFormat(String pattern, Locale locale)
結(jié)合網(wǎng)上的一些提示,Nov是英文中的表示方法,就試著在構(gòu)造函數(shù)里添加一個Locale.US,結(jié)果如下Date pubd = (new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US)).parse("Tue Nov 15 09:17:35 CST 2011");
終于解決了這個問題,也許這對于有經(jīng)驗(yàn)的老手來說,算不上什么。暫時記在這里先,如果有朋友再碰到這樣的問題,希望能很快解決