先說一說這個問題的誤區:
1: 根據地理常識,我們知道時區有24個,經度/15=商+余數,此時的商就是是時區,給大組長說了一下,不沾邊
又過了幾天
2:發現django自帶的模塊timezone,也叫時區,於是就順着這條道開始查找,發現一個插件----pytz
研究這個模塊的時候,發現pytz.all_timezones() 可以輸出所有的時區,一查看長度有592個,這么多的時區
當初自己說的24個時區太幼稚了.
於是開始根據這么多的時區想問題,用戶輸入經緯度,判斷在那個時區中,又要TM了,前台輸入的經緯度,而自己獲取
的時區都是城市名,他們之間該怎么換算,開始的思路是:
把所有的時區作為常量轉化為經緯度,放到setting中,用一個查一個,前台輸入經緯度做減法運算,獲取最小值,根據最小值
找到對應的時區,當時感覺很聰明問題解決了,還沒有和組長說,不過感覺有點麻煩
於是問了問別人,還是大神多
3:python是最簡潔的語言,怎么會有你想的那么復雜呢,他有自帶的模塊----tzwhere
當時聽到大神說的這個模塊,在百度上找了找,又TM了,百度上居然搜不到,對百度真失望,不廢話了直接上代碼
谷歌搜索:
how to lookup the timezone for lat/lng with python library (the 3rd page is your answer)
測試代碼如下
是不是你想要的結果,反正是我想要的...
除此之外:
當我們找到模塊后使用pip安裝,但是總是包一個錯誤:ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out
於是又開始查找怎么接觸這個錯誤
Read timed out
下載超時了,天朝的網絡就這樣。做程序員真心不容易。
只有修改pip源了。
臨時使用:pip install pythonModuleName -i https://pypi.douban.com/simple
修改默認的軟件源:
修改/etc/pip.conf
文件,即可為所有用戶配置.
修改~/.pip/pip.conf
為當前用戶配置. windows
下pip
配置文件為C:Usersxxpippip.ini
,沒有就新建.
(時區問題,谷歌有好多的答案,這個模塊還有pytz, timezonefinder, )
geocoders :http://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates