django1.4中時間類型入庫注意

在網站開發時一些model中是存在DateTimeField類型的,在用的過程當中讀取顯示也沒發現任何問題。python

可是在數據統計時卻發現了問題shell

事情是這樣的:django

我在9月1日記錄了一條數據,可是在統計9月數據記錄的狀況時卻發現沒有任何記錄。很奇怪,因而查看庫裏面,原來時間的格式存儲的是utc格式的。也就是往前8小時。這樣數據就算在了8月份當中。網站

因而在manage.py shell中試着存儲時間類型的數據時,有個warning code

DateTimeField received a naive datetime ... while time zone support is active.
在Python27\Lib\site-packages\django\db\models\fields\__init__.py中找到報警的地方,看到以下代碼:

if settings.USE_TZ:
                # For backwards compatibility, interpret naive datetimes in
                # local time. This won't work during DST change, but we can't
                # do much about it, so we let the exceptions percolate up the
                # call stack.
                warnings.warn(u"DateTimeField received a naive datetime (%s)"
                              u" while time zone support is active." % value,
                              RuntimeWarning)
                default_timezone = timezone.get_default_timezone()
                value = timezone.make_aware(value, default_timezone)
            return value

想必是settings.USE_TZ設置問題了,因而在settings中設置爲False,後來存儲的時間格式就是咱們本身本地的了。

 

在官網中有1.4中支持time-zone的描述及緣由:開發

https://docs.djangoproject.com/en/1.4/releases/1.4/ get

相關文章
相關標籤/搜索