我得到以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "Mon Jun 23 17:21:00 2014" is malformed at "Jun 23 17:21:00 2014"
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:873)
at PatternExample.startService(PatternExample.java:20)
at PatternExample.main(PatternExample.java:36)
这就是错误:
DateTimeFormatter formatter = DateTimeFormat.forPattern("E M d HH:mm:ss YYYY");
DateTime dateTime = formatter.withZone(DateTimeZone.UTC).parseDateTime("Mon Jun 23 17:21:00 2014");
System.out.println("DateTime: " + dateTime);
我按照DateTimeFormat的文档:
http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html
唯一需要注意的是,此字符串时间表示采用UTC格式,并且必须存储为UTC日期时间对象。我知道有一个Z标志,但这里没有必要,因为我没有在字符串中指定时区。
E代表星期几(例如星期一)。 M表示一年中的月份(例如Jun)。 d表示月中的日期(例如23)。时间和年份也遵循文档。为什么我会收到这个格式错误的错误以及如何解决?
答案 0 :(得分:2)
将格式化程序字符串中的E
更改为EEE
,将M
更改为MMM
。