実際には文字列である日付を検証し、フォーマットで印刷しようとしてい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
です。私も検証をしたいです。続行する方法の手がかりはありません。
実際には文字列である日付を検証し、フォーマットで印刷しようとしてい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
です。私も検証をしたいです。続行する方法の手がかりはありません。
デフォルトでは寛大です。解析する前に、非寛容に設定する必要があります。
ft.setLenient(false);
これによりParseException
、年と比較して無効な日や月が指定された場合に発生します。基本的に任意の年数が有効であるため、これは年自体を検証しないことに注意してください。具体的な機能要件によっては、年に追加のチェックを行うことができます。たとえば、文字列を分割して/
から、最初の部分の長さが4であるかどうかをチェックします。
入力を検証するには、RegExpを使用する方がよい場合があります
。たとえば、次の回答を参照してください:
https ://stackoverflow.com/a/2149692/1448704
セバスチャン