2

実際には文字列である日付を検証し、フォーマットで印刷しようとしていyyyy/MM/ddます。これがコードです。

String s="2012/12/0390990";
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(ft.format(ft.parse(s))); 

出力は3083/05/30です。私も検証をしたいです。続行する方法の手がかりはありません。

4

2 に答える 2

5

デフォルトでは寛大です。解析する前に、非寛容に設定する必要があります。

ft.setLenient(false);

これによりParseException、年と比較して無効な日や月が指定された場合に発生します。基本的に任意の年数が有効であるため、これは年自体を検証しないことに注意してください。具体的な機能要件によっては、年に追加のチェックを行うことができます。たとえば、文字列を分割して/から、最初の部分の長さが4であるかどうかをチェックします。

于 2012-10-24T20:47:48.203 に答える
-2

入力を検証するには、RegExpを使用する方がよい場合があります
。たとえば、次の回答を参照してください:
https ://stackoverflow.com/a/2149692/1448704

セバスチャン

于 2012-10-24T20:48:50.513 に答える