错误:
线程“main”中的异常java.lang.IllegalArgumentException:非法模式组件:p at org.joda.time.format.DateTimeFormat.parsePatternTo(DateTimeFormat.java:559) at org.joda.time.format.DateTimeFormat.createFormatterForPattern(DateTimeFormat.java:682) at org.joda.time.format.DateTimeFormat.forPattern(DateTimeFormat.java:170) 在com.myjavapapers.time.JodaTimeDemo.getDate(JodaTimeDemo.java:29) 在com.myjavapapers.time.JodaTimeDemo.main(JodaTimeDemo.java:21)
System.out.println(getDate("09/16/14 1:07 PM", "MM/dd/yy hh:mm pm"));
public static Date getDate(final String dateTimeS, final String format) {
if (StringUtils.isEmpty(dateTimeS)) {
return null;
}
DateTimeFormatter fmt = DateTimeFormat.forPattern(format);
DateTime dateTime = fmt.parseDateTime(dateTimeS);
return dateTime.toDate();
}
答案 0 :(得分:2)
错误告诉您p
不是解析器的允许字符。您必须使用组件a
来解析AM / PM字符串。这应该有效:
getDate("09/16/14 1:07 PM", "MM/dd/yy hh:mm a")
请查看documentation以获取更多解释。