私は以下のコードを持っていますが、2011 年 2 月 2 日のようなものを入力した場合を除いて、かなりうまく機能します。「ドキュメントの日付は有効な日付ではありません」というエラー メッセージが表示されます。「ドキュメントの日付はMM / DD / YYYYの形式にする必要があります」と表示されると思います。
なぜ行newDate = dateFormat.parse(date);はそれをキャッチしないのですか?
// checks to see if the document date entered is valid
private String isValidDate(String date) {
// set the date format as mm/dd/yyyy
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date newDate = null;
// make sure the date is in the correct format..
if(!date.equals("mm/dd/yyyy")) {
try {
newDate = dateFormat.parse(date);
} catch(ParseException e) {
return "The Document Date needs to be in the format MM/DD/YYYY\n";
}
// make sure the date is a valid date..
if(!dateFormat.format(newDate).toUpperCase().equals(date.toUpperCase())) {
return "The Document Date is not a valid date\n";
}
return "true";
} else {
return "- Document Date\n";
}
}
編集: MM/DD/YYYY の形式を厳守しようとしています。ユーザーが「2011 年 2 月 2 日」と入力すると、「ドキュメントの日付は MM/DD/YYYY の形式である必要があります」というメッセージが表示されるように、コードを変更するにはどうすればよいですか?