Python 如何修改程序默認(rèn)時(shí)區(qū)
如何修改程序默認(rèn)時(shí)區(qū)
由于系統(tǒng)安裝時(shí)時(shí)區(qū)可能選擇不對(duì),并不是中國(guó)的東八區(qū),導(dǎo)致依賴于日期時(shí)間函數(shù)無(wú)法正常使用
找到一個(gè)比較簡(jiǎn)單的方法
程序啟動(dòng)時(shí)加一行代碼即可
os.environ['TZ'] = 'Asia/Shanghai'
關(guān)于datetime時(shí)區(qū)問(wèn)題
使用阿里云函數(shù)計(jì)算功能,基于python3構(gòu)建函數(shù),在本機(jī)通過(guò)datetime.now獲取當(dāng)前時(shí)間與數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)間對(duì)比,獲取時(shí)間差,可正常運(yùn)行。
上傳到阿里云后運(yùn)行錯(cuò)誤,后檢測(cè)發(fā)現(xiàn)阿里云服務(wù)器默認(rèn)時(shí)間為utc時(shí)間。解決方法如下。
解決方案
第三方模塊
pytz可以很方便的修改時(shí)區(qū),但是需要再引入一個(gè)模塊,所以沒(méi)用這個(gè)。
import pytz import datetime tz = pytz.timezone('Asia/Shanghai') datetime.datetime.now(tz)#獲得此時(shí)區(qū)的當(dāng)期那時(shí)間 #可以通過(guò)pytz.timezone('cn')獲取中國(guó)的所有可用的時(shí)區(qū) #['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
直接修改時(shí)區(qū)
下面轉(zhuǎn)子
# 拿到UTC時(shí)間,并強(qiáng)制設(shè)置時(shí)區(qū)為UTC+0:00: >>> utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc) >>> print(utc_dt) 2015-05-18 09:05:12.377316+00:00 # astimezone()將轉(zhuǎn)換時(shí)區(qū)為北京時(shí)間: >>> bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8))) >>> print(bj_dt) 2015-05-18 17:05:12.377316+08:00 # astimezone()將轉(zhuǎn)換時(shí)區(qū)為東京時(shí)間: >>> tokyo_dt = utc_dt.astimezone(timezone(timedelta(hours=9))) >>> print(tokyo_dt) 2015-05-18 18:05:12.377316+09:00 # astimezone()將bj_dt轉(zhuǎn)換時(shí)區(qū)為東京時(shí)間: >>> tokyo_dt2 = bj_dt.astimezone(timezone(timedelta(hours=9))) >>> print(tokyo_dt2) 2015-05-18 18:05:12.377316+09:00
此方法直接獲取很容易,包括使用pytz,但是這樣獲取到的dt類型都是帶時(shí)區(qū)類型,此時(shí)直接和sql獲取到的時(shí)間比較會(huì)出現(xiàn)“帶時(shí)區(qū)與不帶時(shí)區(qū)類型不可轉(zhuǎn)換”的錯(cuò)誤
直接加減
utc_dt = datetime.utcnow() bj_dt = utc_dt+timedelta(hours=8) delta_dt = bj_dt - sql_dt
此方案要求sql的計(jì)時(shí)時(shí)區(qū)要固定
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新問(wèn)題及思路詳解
這篇文章主要介紹了Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新,實(shí)現(xiàn)思路就是利用tensor的requires_grad,每一個(gè)tensor都有自己的requires_grad成員,值只能為True和False,具體內(nèi)容詳情跟隨小編一起看看吧2021-08-08Python3 tkinter 實(shí)現(xiàn)文件讀取及保存功能
tkinter是一個(gè)跨平臺(tái)的GUI庫(kù),開(kāi)發(fā)的程序可以在win,linux或者mac下運(yùn)行,tkinter是python自帶的GUI庫(kù),是對(duì)圖形庫(kù)TK的封裝。本文通過(guò)實(shí)例代碼給大家介紹Python3 tkinter 實(shí)現(xiàn)文件讀取及保存功能,感興趣的朋友跟隨小編一起看看吧2019-09-09OpenCV+python3實(shí)現(xiàn)視頻分解成圖片
這篇文章主要為大家詳細(xì)介紹了OpenCV+python3實(shí)現(xiàn)視頻分解成圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09tensorflow: 查看 tensor詳細(xì)數(shù)值方法
今天小編就為大家分享一篇tensorflow: 查看 tensor詳細(xì)數(shù)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06