2017-07-19 5 views
0

文字列から日付を取得するために次のスニペットを使用しています。FastDateFormatを使用して文字列から日付を解析できません

//class org.apache.commons.lang3.time.FastDateFormat 
FastDateFormat fdf = FastDateFormat.getInstance("yyyyww"); 
Object ob = fdf.parseObject("201701", new ParsePosition(1)); 
java.util.Date d = (java.util.Date) ob; 
System.out.println(d); 

また、parseObject(String)メソッドを呼び出して使用しています。しかし、APIコードを調べると、例外がスローされるようにコードで処理されたコンストラクタに0を渡しながら、PArsePositionオブジェクトが作成されることがわかりました。

//class org.apache.commons.lang3.time.FastDateFormat 
FastDateFormat fdf = FastDateFormat.getInstance("yyyyww"); 
Object ob = fdf.parseObject("201701", new ParsePosition(1)); 
java.util.Date d = (java.util.Date) ob; 
System.out.println(d); 

以下のドキュメントでは、parse()メソッドが存在すると述べていますが、利用できません。上記のようのparseObject()の

FastDateFormat documentation

作る使用が結果を与えます。

APIのparseObject()メソッドは、常にnullを返す次のようなものです。

definition of parseObject(String,ParsePosition) in API

代替アプローチまたはいくつかの安定したバージョンについて助言してください。

+0

「201701」とは何ですか?その年と月のパターンが間違っています(これは 'yyyyww'ではなく' yyyyMM'です)。https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

+0

また、 'parse'メソッドが利用できない場合は、ドキュメントが参照するのと同じバージョンを使用していない可能性があります。 –

+0

@Hugoフォーマットは年と週です。 OK、それ以降のバージョン(これは2.6です)を調べます。 –

答えて

0

問題が解決されました。

実際に依存関係を取得するためにMavenを使用しています。これは、次のために存在する:

<dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.3</version> 
    </dependency> 

以前私がそれを行うのに苦労している間:

<dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>3.6</version> 
    </dependency> 

これは、バージョン管理の問題だったとMavenを使用しながら、問題のおそらくもっと。

ご質問ありがとうございました@Hugoのコメントです。

関連する問題