2009-11-24 4 views
4

다음과 같이 사용하고 있습니다 : 종료 날짜가있는 이벤트를 만들 수있게 해주는 이벤트 응용 프로그램에서 datetime.now()를 사용하면 모든 이벤트가 달력에 표시되고 if 빨간색으로 표시되어 이벤트가 전달됩니다.django, datetime 및 timezones

내 문제는 내게 다른 시간대에있는 사용자가 내게 이벤트가 잘못된 시간에 끝난다는 것입니다. 그들은 마감일에 자정에 끝나야합니다.

나는 장고 settings.py에 시간대 설정을했습니다. 내가 사용하는 경우 : datetime.now()는 사용자의 로컬 시간대를 벗어나거나 장고에서 설정 한 시간대를 벗어나려고합니까?

내가 원하는 것은 사용자의 현재 시간대에 대한 자정을 찾는 것입니다. 위의 방법이 잘못 되었다면 어떻게해야합니까?

감사

답변

4

당신은 자신의 사용자 프로필에 자신의 시간대를 지정하는 사용자가 필요합니다. 이것은 로컬 시간을 올바르게 계산하는 데 사용될 수 있습니다.

좋은 정보 (및 구체적인 예)는 Relativity of time – shortcomings in Python datetime, and workaround을 확인하십시오.

업데이트 : 장고 1.4부터는 timezone이 지원됩니다. 확인 해봐. UTC로 날짜 시간 대신 다음 사용자의 시간대에 따라 필요한 조정을 저장

+0

좋은 링크, 도움에 대해 감사합니다. – Joe

0

시도 : 나는 도서관에 근무

import datetime 

def getUtcNow(): 
    return datetime.datetime(*time.gmtime()[:6]) 
0

투명하게 사용자 시간대에 작업. 필드와 일부 시간대 유틸리티를 사용해야하며 요청이나 쿼리를 할 때마다 모든 시간대를 사용자 시간대로 변환해야합니다.

라이브러리의 이름은 django-timezones이며 Brosner first made의 라이브러리를 수정 한 것입니다.

효과가 있는지 확인해보십시오.