2013-07-28 2 views
4

내 django 프로젝트에는 필드가 citycountry 인 작은 호텔 데이터베이스가 있습니다.도시와 국가를 통과하여 시간대를 얻는 방법은 무엇입니까?

citycountry을 매개 변수로 사용하여 해당 장소에 timezone을 얻을 수 있습니까?

내가 이것을하고 싶은 이유는 check-in 호텔의 시간과 그 hote의 시간의 차이에 따라 작동하는 몇 가지 명령이 있기 때문입니다. datetime.now()는 순진한 datetime을 제공하므로 호텔 시간과 비교할 때 사용할 수 없습니다.

어떻게 해결할 수 있을까요? 감사합니다 :)

+0

관련 항목 : [Python/Django의 도시에서 시간대 가져 오기] (http://stackoverflow.com/q/16505501/4279) – jfs

답변

7

도시와 국가별로 시간대를 해결하려면 먼저 위도/경도 좌표를 가져와야합니다. 이 질문과 그 다양한 해답을보십시오 : https://stackoverflow.com/q/23572/634824

다른 시간대를 관찰하는 부분이있는 일부 도시가 있다는 것을 알아 두십시오. 이 경우 약간의 오차가있을 수 있습니다. 이 게시물을 참조하십시오 : can 2 timezone be for 1 city?

특정 장소 (호텔)의 위치를 ​​찾고 있다고 했으므로 전체 주소를 사용하여 각 장소의 정확한 좌표를 지오 코딩하는 것이 좋습니다. 이것에는 많은 서비스가 있습니다 (예 : the one provided by Google here).

그런 다음 여기에 설명 된 서비스 중 하나에 좌표를 사용 : 사용자 falsetru가에 가리 켰을 때, 당신이 시간대 ID를 일단 How to get a time zone from a location using latitude and longitude coordinates?

이 같은 Asia/Seoul 또는 America/New_York로, 당신은 pytz 기능에서 사용할 수 있습니다 자신의 대답.

관심있는 도시가 이미 표준 시간대 데이터베이스에 정의 된 것 중 하나인지 미리 확인하여 속도를 향상시킬 수 있습니다. 그러나 시간대 ID가있는 핵심 도시뿐만 아니라 전세계에 수천 개의 도시가 있습니다.

다른 아이디어

  • 당신은 시간대 맵 데이터 found hereGeoDjango을 사용할 수 있습니다.
  • Django-GeoNames을보고 GeoNames의 시간대가 포함되어 있는지 확인할 수 있습니다.
  • Google에서 검색하는 5 분 동안 찾지 못한 Django 또는 Python 특정 라이브러리가있을 수 있습니다.
관련 문제