2015-09-03 49 views
1

我想解析下面的日期:10:00 AM (UTC-08:00) on Sep 3, 2015使用SimpleDateFormat。处理几个月和几天时得到ParseException

我最远的是:

message = "10:00 AM UTC-08:00"; 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z"); 
sdf.parse(message); 

一次我加了个月,在这个月,我得到了以下异常的日子: (我试图删除括号和“上”,但我会爱找到一个解决方案,优雅地处理)

message = "10:00 AM UTC-08:00 on Sep 3"; 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z MMM d"); 
result = {[email protected]}Method threw 'java.text.ParseException' exception. 
errorOffset = 12 
detailMessage = "Unparseable date: "10:00 AM UTC-08:00 Jul"" 

想知道我失踪。

+0

'一旦我添加月份和月份中的日子',你能显示你做了什么吗? – Zarwan

+0

你用什么格式解析“10:00 AM UTC-08:00 Jul” –

+0

@BasilBourque我展示了我的全部输入,然后展示了我得到了多少异常。目标是解析上面的字符串并获取日期。 – special0ne

回答

0

使用您的输入,如:七月10:00 AM UTC-08:00

和格式,如:MMM HH:MM的Z

0

我得出的结论是,时区必须在年底。

这些所有的工作:

String message = "10:00 AM UTC-08:00"; 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z"); 

String message = "Jul"; 
SimpleDateFormat sdf = new SimpleDateFormat("MMM"); 

String message = "10:00 AM Jul UTC-08:00"; 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a MMM z"); 

String message = "UTC-08:00"; 
SimpleDateFormat sdf = new SimpleDateFormat("z"); 

然而,这些并不:

String message = "10:00 AM UTC-08:00 Jul"; 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z MMM"); 

String message = "UTC-08:00 10:00 AM"; 
SimpleDateFormat sdf = new SimpleDateFormat("z HH:mm a"); 

此外,所有的模式的例子,我看到了在最后的时区。但是我找不到任何明确说明这一点的文档,所以如果您知道其他内容,请阅读本文的任何人都请分享。

相关问题