SimpleDateFormat“不可稀释日期”例外 [英] SimpleDateFormat "Unparseable date" Exception

查看:167
本文介绍了SimpleDateFormat“不可稀释日期”例外的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用 SimpleDateFormat.parse()解析datetime字符串,但是我不断收到不可稀释的日期异常。

I am trying to parse datetime string with SimpleDateFormat.parse() but I keep receiving Unparseable date exceptions.

以下是我要解析的日期格式: 2011-10-06T12:00:00-08:00

Here is the date format I am trying to parse: 2011-10-06T12:00:00-08:00

这是我使用的代码:

try {
    String dateStr = "2011-10-06T12:00:00-08:00";
    SimpleDateFormat dateParser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    SimpleDateFormat dateFormatter = new SimpleDateFormat("MMM d, yyyy");
    Date date = dateParser.parse(dateStr);
    System.out.println(dateFormatter.format(date));         
} catch(Exception e) {
    System.out.println(e.getMessage());
}

哪个返回此错误: java.text.ParseException :不可稀释的日期:2011-10-06T12:00:00-08:00

据我所知,这是正确的使用SimpleDateFormat类的方法,但我不能流利的Java,所以我可能会误会。任何人知道我的问题是什么?

As far as I know this is the correct way to use the SimpleDateFormat class but I'm not fluent in Java so I could be mistaken. Any one know what my issue is?

推荐答案

时区应为GMT-08:00或-0800(正如Madcore Tom所说)。请参阅 Java文档

The timezone should be GMT-08:00 or -0800 (as Madcore Tom said). See Java docs.

在Java 7中,您可以使用yyyy-MM-dd'THH:mm:ssX

In Java 7 you can use "yyyy-MM-dd'T'HH:mm:ssX"

这篇关于SimpleDateFormat“不可稀释日期”例外的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆