SimpleDateFormat 사용하면서 발생한 황당한 버그
Posted 2014. 12. 30. 13:33SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");
를 자주 사용합니다.
String today = sdf.format(Calendar.getInstance().getTime());
문자열로 변환해서 사용할때 유용합니다. 하지만 위의 코드에는 오묘한 버그가 숨어있습니다.
프로젝트 말미에 급하게 추가하면서 테스트하고 바로 적용하여 오픈.
하지만 12월 28일이 되어서야 위의 코드에 문제가 있음이 발각(?) 되었습니다.
분명 어제까지 잘 되던 로직이 12월 28일이 되면서 오류를 내뱉기 시작했습니다. 1년이나 빠른 날짜를 가져오는 것이었습니다.
원인은 패턴문자열 오류때문이었습니다.
"YYYYMMdd" vs "yyyyMMdd"
연도를 나타내는 yyyy를 소문자가 아닌 대문자로 사용할 경우 미묘한 오류가 발생합니다.
자칫 악용하면 연말에만 발생하는 버그를 만들수도 있겠네요.
'개발노트' 카테고리의 다른 글
logback 적용 팁(크기별, 일자별, 패키지별 로그파일분리) (0) | 2015.02.27 |
---|---|
Model1 방식에서 인코딩처리(GET, POST) (0) | 2015.01.20 |
java application windows service로 등록하기(nssm) (0) | 2014.12.26 |
sc.exe Windows service 등록시 주의할점 (0) | 2014.12.26 |
Windows batch 파일로 날짜별 백업파일 만들기 (0) | 2014.12.16 |
- Filed under : 개발노트