2013-10-26 68 views
1

我有字符串看起來像:Sun, 27-Oct-2013 11:31:31 GMT 爲使我做的稍微簡單一些:不能與字符串轉換日期

if (s.length() > 10) 
    s = s.substring(5, s.length() - 4); 

s = " 27-Oct-2013 11:31:31"

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); 
Date timestamp = null; 

try { 
    timestamp = formatter.parse(s.trim()); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

它捕捉異常java.text.ParseException: Unparseable date: "27-Oct-2013 11:31:31"

+0

你應該嘗試更簡單地查找錯誤 - 只用字符串27月 - 2013年和格式爲dd-MMMM-YYYY與同爲部分時間 – Axarydax

+0

我想你的代碼,並沒有錯誤嘗試發生 –

+0

同樣適用於我 - 不會拋出異常 – svs

回答

7

你s應指定一個語言環境,其中格式化程序的月份拼寫爲英文,否則將使用您的默認語言環境。

SimpleDateFormat(String pattern)

構造新的SimpleDateFormat使用指定的非本地化 的模式和用戶的默認 語言環境的DateFormatSymbolsCalendar

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss", Locale.US); 
+0

+1。考慮到字符串的時區是格林尼治標準時間,時區也應設置爲SimpleDateFormat格林尼治標準時間。 –

+0

Greate。有用。只需添加Locale.US。 –