대머리개발자

1년이 더해지는 날짜 Formatter 이슈 본문

개발이야기/개념

1년이 더해지는 날짜 Formatter 이슈

대머리개발자 2025. 1. 3. 12:57
728x90

 

 

콘텐츠를 등록하고 해당 콘텐츠 내용을 쉽게 검색하기 위해서 solr 색인을 진행한다.

 

반년이상을  이슈 없이 잘 사용하고 있었는데 특정 날자의 색인이 이상하게 되었다.

특정날자 : 2024년 12월 29/30/31일에 등록된 데이터만 1년이 ADD 되어서 색인

 

실제 DB값은 정상적이었기 때문에 색인을 할때 이슈가 발생된 부분이라고 생각을 했다.

 

등록날짜를 색인을 위해 Formatter

...
// 실제 적용 코드
doc.addField(Constants.REG_DT, this.regDt!!.format(Utils.getDateTimeFormatter()))
...

fun getDateTimeFormatter(): DateTimeFormatter{
	return DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss")
}

 

>> 이유

`YYYY`는 "week-based-year"를 의미하며, 12월 29일, 30일, 31일과 같은 연말 날짜는 경우에 
따라 다음 해의 첫 번째 주에 속할 수 있습니다. 
이 때문에 `YYYY`를 사용하면 연도가 1년 더해지는 현상이 발생할 수 있습니다.

 

 

아래 달력에 보이듯이 24년 12월 29/30/31일은 25년의 첫째주로 인식

 

12년을 개발 생활하면서도 생소했던.......대에충 복사 & 붙여넣기를 해서 쓰면 이렇게 되는것이다. ㅠ

 

이슈의 수정은 너무나도 간단했다.

fun getDateTimeFormatter(): DateTimeFormatter {
    return DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
}
728x90

'개발이야기 > 개념' 카테고리의 다른 글

flatMap vs Map...(3) 논블록킹 vs 블록킹  (0) 2025.03.14
앱 푸시 - FCM - 조금 고도화  (0) 2025.02.27
앱 푸시 - FCM  (0) 2024.11.27
flatMap vs map  (1) 2024.11.20
API 호출 vs DB View  (0) 2024.11.11