2012-04-25 2 views
1

나는 궁극적으로 SMS 메시지로 보낼 텍스트를 만들려고 노력하고 있습니다. blurb에는 표준 시간대로 UTC를 사용하지만 사용자의 표준 시간대 대신 텍스트를 지역화해야하는 datetime 객체의 텍스트가 포함됩니다. 사용자의 시간대가 db에 저장되어 있습니다.django - str과 datetime으로 사용자의 시간대

timezone.activate() 및 timezone.deactivate()를 사용하여 현재 시간대를 변경할 수 있음을 알고 있지만 그게 최선의 작업인지 알 수 없습니다. 원하는 모든 작업이 datetime은 사용자의 현지 시간대로 인쇄합니다. 짧은 시간이라 할지라도 현재 시간대를 변경하면 원하지 않는 시스템 결과가 발생할지 모르겠습니다.

답변

2

timezone.activate()를 사용하여 시간대를 활성화하면 현재 요청에만 영향을 미치므로 걱정할 필요가있는 "원하지 않는 시스템 결과"가 실제로 없습니다. 미들웨어에서 시간대를 활성화하면

:

from django.utils import timezone 

class TimezoneMiddleware(object): 
    def process_request(self, request): 

     if request.user.is_authenticated(): 
      timezone.activate(request.user.get_profile().timezone) 

당신이 당신의 SMS 템플릿에 {{ datatime }} 매개 변수를 사용하여 사용자의 로컬 시간을 렌더링 할 수 있습니다.

관련 문제