Django
[Django] DateTimeField 데이터 DB insert시 UTC 기준으로 저장되는 경우 이슈해결
현쥬스주스
2023. 2. 27. 17:45
Django framework를 사용하여 개인 프로젝트 작업하던중 날짜 데이터를 UTC+9 기준으로 저장해야하는데 계속 UTC 기준으로 저장이 되어 꽤나 헤맨 경험이 있어 해결방법을 정리해두려고 한다.
Django를 처음 사용해보던 탓에 어떤 설정을 수정해야 하는지 몰라
우선 서버 타임존, 디비 타임존, Django 타임존 모조리 수정하며 확이해보았는데
결과는 그대로였다...ㅠ_ㅠ
디버깅을 해보니 코드상에서는 분명 UTC+9 기준으로 잘 동작하는데.. 최종적으로 DB에 저장은 계속 UTC 기준으로 되었다.
이유를 알수없어 여러가지 서칭을 해보다가 드디어 원인을 발견하였다!!
settings.py 파일을 보면
USE_TZ 이라는 값이 있는데
나는 해당값이 True로 되어있었다.
당연히 해당값이 True이면 타임존이 정상적으로 모두 적용되는줄 알았는데
* USE_TZ = True : template와 form에만 적용됨(그외는 UTC)
* USE_TZ = False : 모든 경우 저장할때도 적용됨
이렇게 사용된다고 한다...
위의 내용처럼 값을 False로 변경하니 정상적으로 데이터가 저장되는것이 확인되었다~