jodatime -> 解析错误 utc 日期时间字符串

jodatime -> parse error utc datetime string

目前,我正在尝试使用 jodatime 库解析 DateTime。

String stringLiteral = "09/05/2016 12:25:39"
try {
  DateTime utcDateTime = new DateTime(stringLiteral, DateTimeZone.UTC);
  this.expressionType = ExpressionEnumType.date;
  this.expressions.add(ConstantImpl.create(utcDateTime.toDate()));
} catch (IllegalArgumentException e)
{
  this.expressionType = ExpressionEnumType.string;
  this.expressions.add(ConstantImpl.create(stringLiteral));
}

然而,jodatime 告诉我:

java.lang.IllegalArgumentException: Invalid format: "09/05/2016 12:25:39" is malformed at "/05/2016 12:25:39"

DateTime 的构造函数无法将任意格式的字符串解析为 DateTime 对象。如果你想以这种方式使用构造函数,字符串必须是 ISO 8601 格式之一,而你的字符串 "09/05/2016 12:25:39" 不是。

用另一种方法解析日期,这里可以自己指定格式。例如:

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss")
                                            .withZoneUTC();

DateTime utcDateTime = DateTime.parse(stringLiteral, formatter);