我們使用order_by對時間進行排序,可能出現數據沒有按照時間排序。其實是我們的錯覺,出現問題的原因是由於時區的問題。
下來我們就說一下解決時區的問題辦法
在setting文件里面注釋掉默認按照美國時間的TIME_ZON
添加中國/上海
下面是詳細配置解釋
Django 時間與時區設置問題
- 在Django的配置文件
settings.py
中,有兩個配置參數是跟時間與時區有關的,分別是TIME_ZONE
和USE_TZ
- 如果
USE_TZ
設置為True
時,Django會使用系統默認設置的時區,即America/Chicago
,此時的TIME_ZONE
不管有沒有設置都不起作用。 - 如果
USE_TZ
設置為False
,而TIME_ZONE
設置為None
,則Django還是會使用默認的America/Chicago
時間。若TIME_ZONE
設置為其它時區的話,則還要分情況,如果是Windows系統,則TIME_ZONE
設置是沒用的,Django會使用本機的時間。如果為其他系統,則使用該時區的時間,入設置USE_TZ = False
,TIME_ZONE = 'Asia/Shanghai'
, 則使用上海的UTC
時間。