2012-10-31 64 views
0

不一致的時候,我有一個型號:的Django上DateTimeField字段

class People(models.Model): 
    name = models.CharField(max_length=100) 
    lastname = models.CharField(max_length=100) 
    _date=models.DateTimeField() 

在views.py

- 當我試試這個:

p = People(name='foo', lastname='bar', _date=datetime.now()) 
p.save() 

它返回當前時間:2012-10-31 17:33:10.152323

但是,當我檢查我的數據庫的這個記錄時,它顯示:

name lastname _date 
foo bar  2012-10-31 21:33:10 

爲什麼這(兩個不同的時間)發生?

編輯:(它爲4小時差):2012-10-31 17:33:10.152323 and 2012-10-31 21:33:10

回答

1

Django使用時區來DatetimeFields存儲到數據庫中。這就是您在設置中提供了TIME_ZONE的原因。

你可以閱讀更多關於此這裏:​​

如果你想用非天真的日期時間提供你的領域,你必須使用:

now = datetime.utcnow().replace(tzinfo=timezone('Your/Timezone')) 

時區可以在這裏找到:http://en.wikipedia.org/wiki/List_of_tz_zones_by_name

+0

我試過了,但是我得到了這個錯誤:'type object'datetime.time'沒有屬性'時區'' –

+0

我也在setting.py中替換爲TIME_ZONE ='US/East-Indiana',但它不會改變任何東西 –

+0

你必須導入時區:從pytz導入時區 – Jannis

相關問題