-
Django timezoneDjango 2022. 10. 14. 15:51
django는 기본적으로 utc시간을 사용한다.
한국 시간을 사용하기 위해 세팅에 아래와 같이 설정을 한다.
TIME_ZONE = "Asia/Seoul" USE_TZ = True그러나 위의 설정을 하고 datetime 연산을하면 시간이 맞지않다.
DB를 확인해보면 utc 시간으로 설정되어 있다.
DB에도 설정한 timezone으로 저장하려면 어떻게 할까?
TIME_ZONE = "Asia/Seoul" USE_TZ = False위의 예시대로 사용하면 DB에도 설정한 timezone으로 저장이 가능하다.
둘의 차이가 무엇일까?
USE_TZ = True # 보여지는 부분 템플릿과 폼에만 적용된다. USE_TZ = False # 모든 경우 즉 datetime 객체애도 적용되어 DB에 timezone설정으로 저장됨둘 중 무엇이 권장되는 방법일까?
서버에서 DB에 저장하는 시간, 연산하는 시간 등 다루는 모든 시간은 UTC로 통일하는 것이 좋다고한다. 즉 True로 설정하는 것을 권장한다.
서버에서 시간을 다룰 때 일반적으로 어떤 사건의 시간을 지정하는 경우가 많지만 대부분의 경우 해당 시간은 추후 어떤 연산의 소스가 되는 경우가 대부분일 것이다.
그런데 만약 사용자별로 다양한 시간대에 따라 어떤 사용자는 UTC, 어떤 사용자는 GMT+9 등과 같이 시간을 저장하는 경우 분명히 추후 더 큰 문제가 되어 시간을 허비하게 된다.
다른 옵션들도 존재한다.
LANGUAGE_CODE = "ko-KR" # 언어의 코드를 나타냄 USE_I18N 설정이 적용되려면 활성화되어야 함 USE_I18N = True # 번역 시스템 활성화 USE_L10N = True # 데이터의 현지화된 형식을 활성화(4.0 이상부터 더 이상 사용되지 않음 항상 활성화상태)https://docs.djangoproject.com/en/dev/ref/settings/
Settings | Django documentation | Django
Django The web framework for perfectionists with deadlines. Toggle theme (current theme: auto) Toggle theme (current theme: light) Toggle theme (current theme: dark) Toggle Light / Dark / Auto color theme Overview Download Documentation News Community Code
docs.djangoproject.com
'Django' 카테고리의 다른 글
DJANGO + NGINX DDOS 방지 동일 IP중복 요청 제한 (2) 2023.11.14 Django Redis cache (1) 2023.01.03 Django UniqueConstraint (0) 2022.10.07 Django Signal (1) 2022.09.29 Django unittest pytest (0) 2022.09.28