SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");

를 자주 사용합니다.

 

String today = sdf.format(Calendar.getInstance().getTime());

 

문자열로 변환해서 사용할때 유용합니다. 하지만 위의 코드에는 오묘한 버그가 숨어있습니다.

프로젝트 말미에 급하게 추가하면서 테스트하고 바로 적용하여 오픈.

 

하지만 12월 28일이 되어서야 위의 코드에 문제가 있음이 발각(?) 되었습니다.

 

분명 어제까지 잘 되던 로직이 12월 28일이 되면서 오류를 내뱉기 시작했습니다. 1년이나 빠른 날짜를 가져오는 것이었습니다.

 

원인은 패턴문자열 오류때문이었습니다.

 

"YYYYMMdd" vs "yyyyMMdd"

 

연도를 나타내는 yyyy를 소문자가 아닌 대문자로 사용할 경우 미묘한 오류가 발생합니다.

 

자칫 악용하면 연말에만 발생하는 버그를 만들수도 있겠네요.