SimpleDateFormatパターンが "yyyyMM"で、引数がyyyy-MMですが、例外と間違った結果はありません。どうして? THX ~~java SimpleDateFormatパターンが引数と異なる
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
System.out.println(format.format(format.parse("2011-07")));
結果は201105
SimpleDateFormatパターンが "yyyyMM"で、引数がyyyy-MMですが、例外と間違った結果はありません。どうして? THX ~~java SimpleDateFormatパターンが引数と異なる
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
System.out.println(format.format(format.parse("2011-07")));
結果は201105
使用setLenient(false)
です。期待した例外がスローされます。
setLenient() docsを参照してください。
parse
への入力は、間違ってみている
のSystem.out.println(format.format(format.parse( "201107")));
2011-07では、月を負の7か月として解釈し、201005(12-7 = 5)と解釈します。
ちょっと奇妙だけど、年が正しく、月が-7だから、12-7 = 5 – Blem
@Blem:正しい。ソースコードを見ると、アラビア語のテキストのマイナス記号を認識する特別なロジックもあります(数字が*の後ろに置かれます) –