Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

시간대 오류가 납니다ㅠㅠ

3 years, 6 months ago

foley926 foley926

글을 쓴 시각이 UTC 기준으로 저장되는 것 같습니다ㅠㅠ


구글링을 열심히 해봐서 갖가지 방법을 써봤지만

한국 시간 기준이 안되네요..


created_at 필드를 수정해서 저기 있는 Now를 눌러보니 한국 시간 기준으로 잘 나옵니다.

(포스트의 created_at 자체는 UTC 기준으로 되어 있었습니다.)


그런데 shell_plus로 해당 post의 created_at을 찍어보면 UTC 기준으로 나옵니다.

datetime.now()를 해도 UTC 기준으로 나오고 참 복잡하네요ㅠㅠ


settings.py에

========================================

TIME_ZONE = 'Asia/Seoul'

USE_TZ = False

========================================


이렇게 되어있습니다. 어떻게 고칠 수 있을까요?ㅠㅠ


taegon
taegon   3 years, 6 months ago

안녕하세요.

공식문서에 자세히 설명이 되어있습니다만, 짧게 설명드리면, 시간대가 다른 지역에서 서비스하거나(미국은 타임존이 6개입니다), 서머타임제를 적용하는 경우, 문제가 될 수 있어서 UTC를 기준으로 저장을 하고, 이를 보여줄 때, 타임존에 맞게 보여주는 방식으로 주로 접근하게 됩니다. 우리나라는 단일한 타임존을 사용하고, 서머타임제도를 현재는 채택하고 있지 않기때문에 큰 문제가 없긴 합니다.
https://docs.djangoproject.com/en/3.1/topics/i18n/timezones/

저희가 책에 안내해드린 것처럼 USE_TZ=TRUE로 쓰시고, UTC로 저장하되 표출되는 시간은 로컬타임인 한국시간으로 표출되는데 문제가 없을텐데요. 어떤 부분이 불편하실까요? 

타임존을 이용하시더라도, 공식문서에 안내한 것처럼 timezone.now()라고 쓰시면, 한국시간으로 표시가 될겁니다.

질문자님께서 설명해주신대로, USE_TZ = False 라고 설정을 하셨으면, 타임존을 쓰지 않기 때문에, datetime.now()를 쓰시면 로컬시간이 나와야 하는데, 이 부분은 조금 이상하네요. 설정을 바꾸시고, 장고 서비스를 재시작하신 것이지요?

혹시 문제가 계속되시면, 다시 한번 글을 남겨주세요. 문제가 계속되면, 시간을 갖고 검토해보겠습니다.

Updated: May 3, 2021, 12:19 p.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A