在尝试字符串到日期解析时出现ParseException



我正在尝试转换此日期2013-03-04T12:08:52.74+08:00

formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Date date = formatter.parse(dateresult);

但是它以一个异常

结束
03-07 19:17:05.493: W/System.err(2006): java.text.ParseException: Unparseable date: "2013-03-04T12:08:52.74+08:00" (at offset 19)

我试过了。但是同样的异常发生了。有没有人知道另一种(可能更好的)方法来完成这个?

您可以使用joda-time。支持ISO8601标准。

joda-time手册示例:

DateTime dt = new DateTime("2013-03-04T12:08:52.74+08:00");
System.out.println(dt.toString());
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
System.out.println(
        fmt.parseDateTime("2013-03-04T12:08:52.74+08:00"));

使用说明:

formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'");

包含milliseconds (.74)

除了错过baraky指出的毫秒之外,在使用Java解析日期时还会遇到ISO-8601时区问题。

另外,除了@baraky的答案,您的输入日期的时区格式不符合您的格式字符串的规范。你的格式字符串有'Z'(字面字母Z)。看起来你的输入字符串的格式是x。所以你可能想使用:

formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSX");

相关内容

  • 没有找到相关文章

最新更新