jodatime - >解析错误utc datetime字符串

时间:2016-05-09 12:27:29

标签: java jodatime

目前,我正在尝试使用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:格式无效:" 09/05/2016 12:25:39"在" / 05/2016 2016:25:39"

中表现不正确

1 个答案:

答案 0 :(得分:1)

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);