java. text. Simple DateFormat 의 parse () 방법 에 존재 하 는 구덩이
1082 단어 Java
문자열 을
java.util.Date
대상 으로 바 꿀 때 편 의 를 위해 아예 java.text.SimpleDateFormat
의 parse()
방법 을 사용 했다.그러나 나 는 parse()
이 날짜 문자열 을 분석 할 때 그 자체 에 문제 가 있다 는 것 을 발견 했다.문제 코드
다음은 문제 가 발생 한 코드 입 니 다.
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
try {
Date date=df.parse("2016--1-01");
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
분석 하 다.
이 코드 는 많은 사람들 이 이상 을 던 졌 다 고 생각 하지만 실제로 이 코드 의 운행 결 과 는 Sun Nov 01 00: 00: 00 CST 2015 입 니 다.
원본 코드 의 디 버 깅 을 통 해
2016--1-01
에서 달 은 음수 로 식별 할 수 있다 는 것 을 알 게 되 었 다. 이 문자열 은 2016
의 1
월 이전 2
개 월 의 첫날 로 인식 되 었 다. (달 은 2
개 월 로 계산 되 기 시작 했다)해결 방안
해결 방안 은 다음 과 같다.
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
try {
Date date=df.parse("2016--1-01");
// / , (true)
df.setLenient(false);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.