2012-08-05 44 views
5

我得到日期時間格式 - "dd MMM yyyy",當試圖解析「2012年8月6日」,我得到一個java.text.ParseException Unparseable日期。得到一個奇怪的例外可解析日期:「2012年8月6日」

每件事看起來都很好,你看到問題了嗎?

+1

你能展示你的代碼嗎?一種可能的原因是您沒有使用兼容的區域設置(將Aug識別爲一個月,例如需要Locale.ENGLISH)。 – assylias 2012-08-05 10:25:44

+0

您的_current_ locale中的「Aug」是否已知? – 2012-08-05 10:37:33

回答

7

您需要提及語言環境,以及...

Date date = new SimpleDateFormat("dd MMMM yyyy", Locale.ENGLISH).parse("6 Aug 2012"); 
1

使用類似:

DateFormat sdf = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH); 
Date date = sdf.parse("6 Aug 2012"); 
1

這應該爲你工作。您需要提供一個語言環境

Date date = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH).parse("6 Aug 2012"); 

或者

Date date = new SimpleDateFormat("dd MMM yyyy", new Locale("EN")).parse("6 Aug 2012"); 
1

使用split()功能與分隔符" "

String s = 「6 Aug 2012」; 

String[] arr = s.split(" "); 

int day = Integer.parseInt(arr[0]); 
String month = arr[1]; 
int year = Integer.parseInt(arr[2]); 
+0

請參閱編輯 – 2012-08-05 11:06:02

+0

您是否建議使用String#split解析日期? – assylias 2012-08-05 12:02:18