時區的概念與轉換
首先要知道時區之間的轉換關系,其實這很簡單:把當地時間減去當地時區,剩下的就是格林威治時間了。 例如北京時間的18:00就是18:00+08:00,相減以后就是10:00+00:00,因此就是格林威治時間的10:00。
而把格林威治時間加上當地時區,就能得到當地時間了。 例如格林威治時間的10:00是10:00+00:00,轉換成太平洋標準時間就是加上-8小時,因此是02:00-08:00。
而太平洋標準時間轉換成北京時間轉換也一樣,時區相減即可。 例如太平洋標準時間的02:00-08:00,與北京時間相差-16小時,因此結果是18:00+08:00。
Python時區的處理
發現python沒有簡單的處理時區的方法,不明白為什么Python不提供一個時區模塊來處理時區問題。 好在我們有個第三方pytz模塊,能夠幫我們解決一下時區問題。
pytz簡單教程
pytz查詢某個的時區
可以根據國家代碼查找這個國家的所有時區。
代碼如下:
>>> import pytz
>>> pytz.country_timezones('cn')
['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
pytz創建時區對象
根據上面得到的時區信息,就可以創建指定的時區對象。比如創建上海時區對象:
代碼如下:
tz = pytz.timezone('Asia/Shanghai')
得到某個時區的時間
然后在創建時間對象時進行指定上面時區,就可以得到指定時區的日期時間:
代碼如下:
>>> import datetime
>>> datetime.datetime.now(tz)
新聞熱點
疑難解答