SimpleDateFormat"Unparseable date"异常

Wad*_*ade 7 java date simpledateformat parseexception

我试图解析日期时间字符串,SimpleDateFormat.parse()但我一直收到Unparseable日期异常.

这是我尝试解析的日期格式: 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());
}
Run Code Online (Sandbox Code Playgroud)

哪个返回此错误: java.text.ParseException: Unparseable date: "2011-10-06T12:00:00-08:00"

据我所知,这是使用SimpleDateFormat类的正确方法,但我不能流利使用Java,所以我可能会弄错.谁知道我的问题是什么?

Ski*_*ead 13

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

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


Mad*_*Tom 11

我相信SimpleDateFormat不会解析带有冒号的时区(-08:00).它应该能够解析日期2011-10-06T12:00:00-0800.

一些简单的字符串操作应该可以帮助你摆脱冒号.