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