2012-08-05 51 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