날짜가 맞는지 여부를 확인하기 위해이 코드를 가지고 있지만 모든 경우에 해당하지는 않습니다. 예를 들어 text = "03/13/2009"일 때이 날짜는 "dd/MM/yyyy"형식으로 존재하지 않으므로 날짜를 03/01/2010으로 구문 분석합니다. 이 동작을 변경하고 올바르지 않은 날짜를 구문 분석하려고 할 때 예외가 발생하는 어떤 방법이 있습니까? 이 유효성 검사를 수행하는 가장 좋은 방법은 무엇입니까?날짜 구문 분석이 올바른지 확인하기
public static final String DATE_PATTERN = "dd/MM/yyyy";
public static boolean isDate(String text){
SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN);
ParsePosition position = new ParsePosition(0);
formatter.parse(text, position);
if(position.getIndex() != text.length()){
return false;
}else{
return true;
}
}
감사합니다.
제 생각에는
그것은 당신의 D의 일부 또는 전부 같은 소리 확인 ates는 미국 시스템 인 MM/dd/yyyy를 사용하여 포맷 될 수 있습니다. 그렇다면, 여전히하려는 것은 모든 경우에 작동하지 않을 것입니다. 두 시스템 모두에서 유효하기 때문에 모호한 날짜가 있습니다. 날짜가 동일한 시스템을 사용하여 형식화되고 해당 시스템이 무엇인지 알고 있는지 확인해야합니다. –
@Mark Byers 나는 파싱 된 날짜를 출력하고 있기 때문에 "MM/dd/yyyy"로 파싱 된 날짜를 생각하지 않는다. 그리고 텍스트 = "03/13/2009"나는 날짜를 얻고있다 Jan Jan 03 00 00 : 00 CET 2010. "MM/dd/yyyy"로 구문 분석하는 경우 2010 년 1 월 3 일이 아닌 2009 년 3 월 13 일이되어야합니다. – Javi