目前,我正在尝试使用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"
中表现不正确
答案 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);