我正在使用基於Django的網站。我正在嘗試獲取正確的時區和時間來顯示。但它不能正常工作。我住在得克薩斯州的達拉斯。所以我的默認時區是'美國/芝加哥'。Python-Django時區無法正常工作
我的settings.py文件包含這幾行代碼。
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
我有datetime和pytz安裝。所以,當我試圖節省時間在數據庫中,我的代碼,
from datetime import datetime
import pytz
utc = pytz.utc
database = Database.objects.get(id=1)
databas.time = utc.localize(datetime.now())
database.save()
所以當我檢查到數據庫,更新時間爲2015-10-20 23:13:04
,而不是2015-10-20 18:13:04
,當我把它打印出來通過下面的代碼模板,我得到這個輸出Oct. 20, 2015, 1:13 p.m.
{{ database.time|localtime }}
我很困惑如何使用日期時間,pytz和隨着settings.py文件獲得準確的時間。
我想要做的是我想保存UTC時間。但是當我打印出來時,我想根據用戶來獲取訪客的時區和打印時間。我的網站現在只能在美國訪問。我的型號有
time = models.DateTimeField(auto_now_add=True)
它節省了一些不同的時間。我有另一種模式,我有一個名爲到期這裏我使用如下代碼,以節省時間列,
expire_time = utc.localize(datetime.now()+ timedelta(hours=24))
意味着我要在24小時後過期的鏈接。但是這個時區讓我感到困惑。誰能幫我?我不知道我的代碼應該使用什麼來獲得適當的時區。
那麼我的settings.py代碼應該如何?他們是否正確?正如我所說的,'models.DateTimeField(auto_now_add = True)'不會節省UTC時間。我不知道爲什麼。 –
是的,你的設置看起來不錯。您可以在創建新實例後發佈「時間」字段的值嗎? –
目前沒有時間碼。我不保存默認時間。我正在更新到期時間。 –