2016-01-24 88 views
0

我正在運行的問題,當我試圖將字符串轉換爲java.util.Date。解析日期不工作

我的日期格式如下:Jan 23 2016 4:00:24 PM我想將該字符串轉換爲Date對象。所以要做到這一點,我使用SimpleDateFormat與參數,根據javadoc:MMM dd yyyy aa。

但是當我跑步時我的代碼,我現在遇到一個java.text.ParseException:無法解析的日期:「2016年1月23日下午四點00分24秒」

可能是我的什麼問題?

謝謝!

編輯:有問題的代碼

String dateStr = "Jan 23 2016 4:00:24 PM"; 
SimpleDateFormat parserSDF = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa"); 
Date date = parserSDF.parse(dateStr); 
+0

的'MMM'圖案是區域設置相關。您可以嘗試明確指定區域設置:'SimpleDateFormat parserSDF = new SimpleDateFormat(「MMM dd yyyy hh:mm:ss aa」,Locale.US);' –

+0

是的,添加locale.US是有幫助的,感謝您的幫助! – user3127125

回答

0

你是什麼系統默認的區域設置?你可以用Locale.getDefault()方法調用來檢查它。我試過你的代碼,使用默認的en_US語言環境適合我。但我試圖使用另一個(我用中文)並且遇到了同樣的錯誤。

嘗試使用SimpleDateFormat parserSDF = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa", Locale.US);與明確定義的區域設置

0

此代碼運行對我很好,併產生輸出週六1月23日16時○○分24秒EST 2016

String text = "Jan 23 2016 4:00:24 PM"; 
    SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa", Locale.US); 
    try { 
     System.out.println(sdf.parse(text)); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

呃,這很奇怪,你的代碼仍然在我的電腦上引發異常....可能是因爲我使用的JDK? (1.8u60) – user3127125

+0

這很奇怪。我可以使用Java 8運行良好的程序。嘗試使用此網站:http://www.tutorialspoint.com/compile_java8_online.php –