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