PYTHON 與 DJANGO 的時區問題

2022-03-04 21:32:52 字數 670 閱讀 5766

在編碼中牽扯到時間問題的時候,總是容易被時區問題搞混,一直以來,都是反覆試驗應付過去,今天終於搞清楚了個中緣由,乙個心結也得以化解。

環境變數 tz 對以上函式的影響:

當系統中設定了環境變數 tz 的時候,或者在python中設定了 os.environ[『tz』] 的時候,上面的函式獲取的時間便是tz對應時區的時間。其實這裡可以認為 tz 影響的不是這些函式,而是影響的系統時間,這可以從date命令的返回結果看出。datetime.now() 與 date命令返回的結果總是一致的。

明白了上面幾個python中的函式,django的時區問題看起來就簡單了。

在django的setting中,有乙個設定是 time_zone, 來設定程式中使用的時區。

從django的文件中得知,time_zone的作用就是改變 os.environ[『tz』]  ,但改變os.environ[『tz』]  並不會改變系統環境變數 tz , 因此,如果 time_zone 的設定於系統時區設定不一致,則在程式中 datetime.now() 獲得的時間就與 date 命令的時間不一致了。

因此,time_zone 應該設定為程式希望使用的時區。對於乙個本地的程式,time_zone 設定為與系統時區一樣即可;而對於乙個國際化的應用,time_zone 最好設定為utc,在顯示的時候再根據當前使用者所在的時區做調整。

**自:

Django的高併發多執行緒時與Mysql的小問題

人確實是自私的動物,但為了極少數的人,人是能犧牲自己的。這種莫名其妙的感情就是愛,是人存在的證據。在linux下sqlite3使用orm運算元據經常會出現執行緒鎖死無法寫入,即使給了sqlite3許可權還是會這樣,如果想在linux下使用sqlite,需要加入執行緒鎖,所以決定改用mysql。初始化...

Django下提交執行python指令,時區問題

使用django寫了乙個工具平台的web,平台通過提交乙個python指令,執行工具的功能。有乙個指令碼會獲取本地時間,在使用過程中發現獲取的本地時間總是與實際的本地時間差8個小時。將指令單獨拿出來的後台執行,是ok的,就是通過web提交指令的執行的時候有問題。1 django設定的時區為utc 2...

python框架Django簡介與安裝

發布於2005年,最負盛名且成熟的python網路框架 開源web框架,遵守bsd協議 採用了mvc mtv架構設計 官方 1 配置隔離的虛擬開發環境 1 pip sudo apt install python3 pip 2 venv 方法1 sudo apt install python3 pip...