您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python怎么修改程序默認時區”,在日常操作中,相信很多人在Python怎么修改程序默認時區問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python怎么修改程序默認時區”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
由于系統安裝時時區可能選擇不對,并不是中國的東八區,導致依賴于日期時間函數無法正常使用
程序啟動時加一行代碼即可
os.environ['TZ'] = 'Asia/Shanghai'
使用阿里云函數計算功能,基于python3構建函數,在本機通過datetime.now獲取當前時間與數據庫存儲時間對比,獲取時間差,可正常運行。
上傳到阿里云后運行錯誤,后檢測發現阿里云服務器默認時間為utc時間。解決方法如下。
第三方模塊
pytz可以很方便的修改時區,但是需要再引入一個模塊,所以沒用這個。
import pytz import datetime tz = pytz.timezone('Asia/Shanghai') datetime.datetime.now(tz)#獲得此時區的當期那時間 #可以通過pytz.timezone('cn')獲取中國的所有可用的時區 #['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
直接修改時區
下面轉子
# 拿到UTC時間,并強制設置時區為UTC+0:00: >>> utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc) >>> print(utc_dt) 2015-05-18 09:05:12.377316+00:00 # astimezone()將轉換時區為北京時間: >>> bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8))) >>> print(bj_dt) 2015-05-18 17:05:12.377316+08:00 # astimezone()將轉換時區為東京時間: >>> tokyo_dt = utc_dt.astimezone(timezone(timedelta(hours=9))) >>> print(tokyo_dt) 2015-05-18 18:05:12.377316+09:00 # astimezone()將bj_dt轉換時區為東京時間: >>> tokyo_dt2 = bj_dt.astimezone(timezone(timedelta(hours=9))) >>> print(tokyo_dt2) 2015-05-18 18:05:12.377316+09:00
此方法直接獲取很容易,包括使用pytz,但是這樣獲取到的dt類型都是帶時區類型,此時直接和sql獲取到的時間比較會出現“帶時區與不帶時區類型不可轉換”的錯誤
直接加減
utc_dt = datetime.utcnow() bj_dt = utc_dt+timedelta(hours=8) delta_dt = bj_dt - sql_dt
此方案要求sql的計時時區要固定
到此,關于“Python怎么修改程序默認時區”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。