1

「yyyy」の形式で文字列を年に解析する必要があります。私が使用するコードスニペットは

try{
        String strDate = "200323";
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
        Date dateStr = formatter.parse(strDate);

        System.out.println("The year is " + dateStr);


    }
    catch(Exception e){
        System.out.println("Date parse exception");
    }

問題は、「2003」などの 4 桁の文字列を使用すると、年に解析され、出力が期待どおり「The year is Wed Jan 01 00:00:00 GMT 2003」になることです。しかし、上記のスニペットのように 4 桁を超える無効な文字列 ("200323" など) を指定すると、解析例外はスローされず、代わりに文字列値が受け入れられ、出力は "The year is Mon Jan 01. 00:00:00 GMT 200323". これを解決するか、少なくとも解析例外をスローさせる解決策を誰かが提案できますか? 解析する前に試してみformatter.setLenient(false)ましたが、効果はありませんでした。どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

1

あなたは間違った友達よりも日付範囲が最大9999であることを意味します

Javaの日付範囲は

始める: Sat Jan 01 00:00:00 PST 1

終わり: Wed Apr 17 21:34:08 PST 292269054

だからあなたはそれを扱うことができません。

于 2012-04-10T16:24:44.870 に答える