2017-06-19 23 views
1

StringDateオブジェクトを、FastDateFormatで解析したいとします。FastDateFormatを使用して文字列を解析する例外

simpleDateStrここ"04/13/2017"ある私のコードです:

java.text.ParseException: Format.parseObject(String) failed 
    at java.text.Format.parseObject(Format.java:245) 

依存関係:

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.6</version> 
</dependency> 
+0

である代わりに、 'のparseObject(simpleDateStr)の'解析(simpleDateStr)を ''使用してみてください、結果を 'Date'型にキャストする必要もありません。 – Jesper

+0

私のためにうまく動作します( 'parse'と' parseObject'の両方)ので、[mcve]を作成する時です。 'simpleDateStr'が___really___" 04/13/2017 "で、隠されたバイトが含まれていないことを確認してください。 – Tom

+0

OK。見つけた。私は2.6を使っていることに気がつきました。それにはバグがあり、それを3.6に変更しました。 – kamaci

答えて

2

2.6バグやへの切り替えを持っているようだ、私はその例外を取得

private static final String SIMPLE_DATE_FORMAT = "MM/dd/yyyy"; 

(Date) FastDateFormat.getInstance(SIMPLE_DATE_FORMAT).parseObject(simpleDateStr); 

3.6で問題が修正されました。

PS:理由は@Shekhar Khairnarが回答したように実装されていません。 (ストレートFastDateFormatのソースコードから)2.6実装で

1

は次のようである:

// Parsing 
    //----------------------------------------------------------------------- 
    /** 
    * <p>Parsing is not supported.</p> 
    * 
    * @param source the string to parse 
    * @param pos the parsing position 
    * @return <code>null</code> as not supported 
    */ 
    public Object parseObject(String source, ParsePosition pos) { 
     pos.setIndex(0); 
     pos.setErrorIndex(0); 
     return null; 
    } 

これが原因

関連する問題