我真的很难用时区来理解这一点。我有一个日历应用程序,其模型如下:
class Events(models.Model):
dtstart = models.DateTimeField('Start')
...
def __unicode__(self):
aware = self.dtstart.replace(tzinfo=timezone.get_current_timezone())
#dt = defaultfilters.date(aware, 'Y-m-d H')
dt = aware.strftime('%Y-%m-%d %H:%M')
return dt
并且 settings.py 包含以下内容:
TIME_ZONE = 'Europe/Stockholm'
USE_TZ = True
如果我使用 Django 管理界面添加明天大约 19:00 开始的事件,sqlite-db 将包含以下内容:
$ sqlite3 ~/django_test.db "SELECT dtstart from events_events"
2013-03-04 18:00:00
这对我来说似乎是一个 UTC 时间戳(我怀疑这是正确的)。当我渲染 html 时,使用{{event.dtstart|date:"H.i"}}
. 它应该显示 19:00。但问题是__unicode__
Event 类的 - 方法返回2013-03-04 18:00
. 如您所见,我有尝试解决此问题,但我被卡住了。我的问题在哪里,如何让这个__unicode__
方法返回2013-03-04 19:00
。我认为现在在瑞典这里是夏令时。