处理月和日时获取ParseException

时间:2015-09-03 03:56:08

标签: java date simpledateformat parseexception

我正在尝试使用SimpleDateFormat解析以下日期:10:00 AM (UTC-08:00) on Sep 3, 2015

我得到的最远的是:

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

一旦我添加了月份和月份,我就得到以下异常: (我试图删除括号和' on'但我希望找到一个优雅地处理它的解决方案)

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

很想知道我错过了什么。

2 个答案:

答案 0 :(得分:0)

使用您的输入:7月10日上午10:00 UTC-08:00

和格式如:MMM HH:mm a z

答案 1 :(得分: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");

此外,我看到的所有模式示例都有最后的时区。但我找不到明确说明这一点的任何文件,所以如果你知道其他任何事情,那么读这篇文章的人请分享。