所以,在我的設置,我有以下:Django時區是如何工作的?
LANGUAGE_CODE = 'en-us'
USE_I18N = True
USE_L10N = True
USE_TZ = True
TIME_ZONE = 'Europe/Copenhagen'
然而,當我發出:
timezone.now()
datetime.datetime(2015, 9, 26, 8, 47, 15, 862729, tzinfo=<UTC>)
,時間晚了兩個小時。
我正在閱讀文檔,我可以看到這個方法調用datetime.datetime()並且信息是正確的。我可以看到輸出基於變量TIME_ZONE,它被設置爲我當前的位置。不應該timezone.now()獲得正確的TIME_ZONE時間嗎?
另一個問題:是否datetime.datetime()從服務器獲取信息?
我已將timezone.now添加到我的models.py中,以便在某些類中標記修改時間。沒有更好的方法嗎? –
爲什麼你會建議使用天真的日期時間對象?如果'USE_TZ = True',那麼'timezone.now()。astimezone(timezone.get_current_timezone())'返回當前時區中的可識別日期時間對象。儘管你不需要手動調用'.astimezone()',有'timezone.localtime()'它爲你和相應的模板過濾器('localtime'),你也不需要調用,如果'USE_TZ = True' – jfs
@ J.F。塞巴斯蒂安,偉大的一點!謝謝:) –