【发布时间】:2014-08-15 04:57:53
【问题描述】:
我得到以下异常:
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 代表一年中的月份(例如六月)。 d 代表月份中的某天(例如 23)。时间和年份也遵循文档。为什么我会收到这个格式错误的错误,我该如何解决?
【问题讨论】: