2011-10-18 27 views
3

SimpleDateFormatパターンが "yyyyMM"で、引数がyyyy-MMですが、例外と間違った結果はありません。どうして? THX ~~java SimpleDateFormatパターンが引数と異なる

SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); 
System.out.println(format.format(format.parse("2011-07"))); 

結果は201105

+1

ちょっと奇妙だけど、年が正しく、月が-7だから、12-7 = 5 – Blem

+1

@Blem:正しい。ソースコードを見ると、アラビア語のテキストのマイナス記号を認識する特別なロジックもあります(数字が*の後ろに置かれます) –

答えて

4

使用setLenient(false)です。期待した例外がスローされます。

setLenient() docsを参照してください。

0

parseへの入力は、間違ってみている

のSystem.out.println(format.format(format.parse( "201107")));

2011-07では、月を負の7か月として解釈し、201005(12-7 = 5)と解釈します。

関連する問題