2012-05-18 91 views
1

我在嘗試解析美國/芝加哥時區的日期時遇到了問題。我已經回顧了一堆其他的ParseException問題,並且我認爲我已經通過Java解析了日期解析的所有常見問題。以下代碼適用於我遇到的所有其他日期/時間,但所有美國/芝加哥時區的日期由於某種原因無法解析。Java無法解析的日期:美國/芝加哥時區

我設置了dateFormat的語言環境,這並不重要。我檢查了其他每個部分都沒有問題,我刪除了不可見的控制字符,我重新輸入了字符串以確保沒有惡意字符被複制/粘貼,但每次都會拋出異常。

有什麼想法?

dateFormat = new SimpleDateFormat("EEE MMM dd k:mm:ss zzz "); 
dateString = "Wed May 02 15:45:47 America/Chicago "; 

try { 
    entry.setDateTaken(dateFormat.parse(dateString)); 
} catch (java.text.ParseException e) { } 

我有我的理由不想去喬達路線,這是我不應該有的簡單的事情。

回答

6

相信的問題是,你正在使用Olson時區ID,而我不認爲SimpleDateFormat支持解析這些。當然,使用你的代碼我和「歐洲/倫敦」有同樣的問題,所以它不是特定於芝加哥。你能舉出工作的那種風格的時區標識嗎?

+0

是的,當我使用其他TimeZone名稱時也會中斷。那麼,在SimpleDateFormat中,當文檔談到帶名稱的時區時,它指的是(例如)「太平洋標準時間」,而不是TimeZone中的時區?感謝您幫助我認識到這一點! – aha