2016-05-09 8 views
0

現在、私はjodatimeライブラリを使用してDateTimeを解析しようとしています。jodatime - >解析エラーutc datetime文字列

java.lang.IllegalArgumentExceptionが:無効なフォーマット: "2016年9月5日12時25分39秒"「/ 05/2016 12で不正な形式されています。しかし、jodatimeは私に語ったが

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

25:39"

答えて

1

DateTimeのコンストラクタはDateTimeオブジェクトに任意の形式の文字列を解析できません。このようにコンストラクタを使用する場合、文字列はISO 8601形式のいずれかでなければならず、文字列"09/05/2016 12:25:39"は含まれていません。

別の方法を使用して日付を解析します。ここでは、フォーマットを自分で指定できます。例:

+0

デフォルトの文字列形式は何ですか。 – Jordi

+0

@Jordi The [API docs](http://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html#DateTime-java.lang.Object-org.joda.time.DateTimeZone - )say:['ISODateTimeFormat.dateTimeParser()'](http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTimeParser--)を見てください。 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式の文字列でなければなりません。例: '2016-05-09T12:25:39' – Jesper