"long"유형의 날짜가 있으며 유효성을 검사하려고합니다. 그것은 xml 파일에서 다른 곳으로 변환되었습니다.Java에서 long으로 유효성을 검사하는 방법
- XML 파일 날짜 : 2018-01-35T00 : 00 + 02 : 00
- 긴 날짜 : 1517695200000L
이 날짜 (2018-01-35 YYYY-MM-DD 등)가해야 날짜가 잘못되었습니다.
How to sanity check a date in java 내가 날짜에 긴 변환하지만 이미 2018년 2월 4일에 2018-01-35에서 날짜를 변경 때문에 발생 예외가 없었다 :
나는 이미 주어진 솔루션을 시도했다. 이것은 완전한 코드입니다 :
long longDate = 1517695200000L;
Date date = new Date(longDate);
System.out.println("long: " + longDate);
System.out.println("Date: " + date);
Calendar cal = Calendar.getInstance();
cal.setLenient(false);
cal.setTime(date);
try {
cal.getTime();
} catch (Exception e) {
LOG.error("invalid date");
return false;
}
이 "자체 유효성 검사"가없이 긴 날짜를 변환 할 수있는 가능성이 있습니까? 아니면 다른 사람에게 아이디어가 있습니까? 미리 감사드립니다.
당신은 2018-01-35를 얻기 위해 당신의 긴 것을 어떻게 변화시켜야하는지 명확히해야 할 것입니다. –
이'long '값이'Date.getTime()'을 통해 얻어 졌다면, 그것은 단지 유닉스 시대 이후의 밀리 세컨드입니다. 그래서 항상 유효합니다. 사실,'Date' 자체는 항상 유효 할 것입니다 ... 당신이 보여주지 않은 * text * 변환에 대해 더 엄격해질 필요가있는 것처럼 들립니다. 2018-01-35는 긴 표현이 아닌 텍스트 표현입니다. –
아마도 long은 20180135L입니다. –