Q&A
책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.
이 페이지는 의견 교환을 위해 따로 만든 페이지입니다. 책에서 이 페이지를 만드는 법을 직접적으로 다루지는 않습니다.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
시간대 오류가 납니다ㅠㅠ
3 years, 6 months ago
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 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: