2013-05-17 89 views
1

我有這樣一個的SimpleDateFormat:無法解析字符串簡單的日期格式

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss"); 

,並試圖分析這種2012-Jul-29 17:14:39 但我真的越來越

java.text.ParseException:無法解析日期:「2012-Jul-29 17:14:39」at java.text.DateFormat.parse(Unknown Source)at com.sysplan.visixd.blastgauge.BGParser.main(Parser.java:396)

任何想法爲什麼?

+7

嘗試'新的SimpleDateFormat(「YYYY-MMM-DD HH:mm:ss「,Locale.ENGLISH);' – johnchen902

+0

謝謝, 有效 ! – Sergiu

+0

它對我來說工作得很好。你能分享完整的代碼嗎? –

回答

3

這似乎是一個區域問題,我想這沒有任何錯誤

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss").parse("2012-Jul-29 17:14:39"); 

但是這個失敗:

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.TAIWAN) 
     .parse("2012-Jul-29 17:14:39"); 

所以它出現作爲一個語言環境問題,你需要指定你的語言環境爲ENGLISH

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH) 
     .parse("2012-Jul-29 17:14:39"); 

即:

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

爲什麼它不是一個自動語言環境? –

+0

@IgorGanapolsky自動的取決於用戶的環境,不一定是'Locale.ENGLISH'。 – johnchen902

+0

你爲什麼假設它需要英語? –

2

試一下這個

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH); 
0

試試這個

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH); 
0

您可以使用下面的代碼:

import java.text.DateFormat; 
import java.util.Calendar; 

public static void main(String[] args) { 
     // TODO Auto-generated method stub 

Calendar now = Calendar.getInstance(); 
DateFormat formateadorFechaMedia = DateFormat.getDateInstance(DateFormat.MEDIUM); 
System.out.println(formateadorFechaMedia.format(now.getTime())); 

} 
}